Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Расширить лист Диаграмма - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Расширить лист Диаграмма (Макросы/Sub)
Расширить лист Диаграмма
rever27 Дата: Пятница, 24.07.2015, 23:18 | Сообщение № 1
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 141
Репутация: 0 ±
Замечаний: 20% ±

Excel 2010
По совету форума, строю Диаграммы на отдельном листе "Диаграмма".
Но на широкоформатном Экране (16:9) остается куча неиспользованного места на листе.
Как можно задать размер диаграммы вручную? Из стандартных размеров листа Excel по диагонали подходит только Envelope, но он через чур мал.

Через Макрорекордер шаманил с этими параметрами, подогнал Envelope под 100% zoom, но после перезапуска книги они сбились.
[vba]
Код
.LeftMargin = Application.InchesToPoints(0.01)
.RightMargin = Application.InchesToPoints(0.01)
.TopMargin = Application.InchesToPoints(0.9)
.BottomMargin = Application.InchesToPoints(0.2)
.HeaderMargin = Application.InchesToPoints(1)
.FooterMargin = Application.InchesToPoints(1)
[/vba]
К сообщению приложен файл: 6770729.png (93.8 Kb)


Сообщение отредактировал rever27 - Пятница, 24.07.2015, 23:18
 
Ответить
СообщениеПо совету форума, строю Диаграммы на отдельном листе "Диаграмма".
Но на широкоформатном Экране (16:9) остается куча неиспользованного места на листе.
Как можно задать размер диаграммы вручную? Из стандартных размеров листа Excel по диагонали подходит только Envelope, но он через чур мал.

Через Макрорекордер шаманил с этими параметрами, подогнал Envelope под 100% zoom, но после перезапуска книги они сбились.
[vba]
Код
.LeftMargin = Application.InchesToPoints(0.01)
.RightMargin = Application.InchesToPoints(0.01)
.TopMargin = Application.InchesToPoints(0.9)
.BottomMargin = Application.InchesToPoints(0.2)
.HeaderMargin = Application.InchesToPoints(1)
.FooterMargin = Application.InchesToPoints(1)
[/vba]

Автор - rever27
Дата добавления - 24.07.2015 в 23:18
Nic70y Дата: Суббота, 25.07.2015, 08:08 | Сообщение № 2
Группа: Друзья
Ранг: Экселист
Сообщений: 8761
Репутация: 2273 ±
Замечаний: 0% ±

Excel 2010
Может в модуль книги вставить:
[vba]
Код
Private Sub Workbook_Open()
     Sheets("Диаграмма1").Select
     Call Ваш_макрос
End Sub
[/vba]
не проверял, а вдруг правильно.


ЮMoney 41001841029809
 
Ответить
СообщениеМожет в модуль книги вставить:
[vba]
Код
Private Sub Workbook_Open()
     Sheets("Диаграмма1").Select
     Call Ваш_макрос
End Sub
[/vba]
не проверял, а вдруг правильно.

Автор - Nic70y
Дата добавления - 25.07.2015 в 08:08
rever27 Дата: Воскресенье, 26.07.2015, 15:32 | Сообщение № 3
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 141
Репутация: 0 ±
Замечаний: 20% ±

Excel 2010
Nic70y, Да, как вариант работает. Немного доработал для разных мониторов:

Выбираем в настройках лист Paper11x17 (27.94см х 43.18см). Их переводим в Поинты.
Зная размеры листа и ширину/высоту активного листа, можем рассчитать необходимый отступ полей.

[vba]
Код
      
     With Sheets("124").PageSetup
         .PaperSize = xlPaper11x17
         .LeftMargin = 0: .TopMargin = 0
         .RightMargin = Application.CentimetersToPoints(43.18) - ActiveWindow.Width + 25
         .BottomMargin = Application.CentimetersToPoints(27.94) - ActiveWindow.Height + 40
         .Orientation = xlLandscape
     End With
[/vba]

Функция хороша, если работает на нескольких мониторах с разными расширениями.
Минус: Этот вариант не для печати.


Сообщение отредактировал rever27 - Воскресенье, 26.07.2015, 15:54
 
Ответить
СообщениеNic70y, Да, как вариант работает. Немного доработал для разных мониторов:

Выбираем в настройках лист Paper11x17 (27.94см х 43.18см). Их переводим в Поинты.
Зная размеры листа и ширину/высоту активного листа, можем рассчитать необходимый отступ полей.

[vba]
Код
      
     With Sheets("124").PageSetup
         .PaperSize = xlPaper11x17
         .LeftMargin = 0: .TopMargin = 0
         .RightMargin = Application.CentimetersToPoints(43.18) - ActiveWindow.Width + 25
         .BottomMargin = Application.CentimetersToPoints(27.94) - ActiveWindow.Height + 40
         .Orientation = xlLandscape
     End With
[/vba]

Функция хороша, если работает на нескольких мониторах с разными расширениями.
Минус: Этот вариант не для печати.

Автор - rever27
Дата добавления - 26.07.2015 в 15:32
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Расширить лист Диаграмма (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!