Excel vba масштаб листа

Параметры печатной страницы в VBA Excel. Свойство PageSetup объекта Worksheet. Объект PageSetup и описание некоторых его свойств с примерами.

PageSetup — это объект, который содержит все атрибуты параметров страницы в виде свойств (диапазон печати, размеры полей, ориентация страницы и т.д.).

Объект PageSetup возвращается свойством PageSetup объекта Worksheet:

где Expression — это выражение (переменная), возвращающее объект Worksheet.

Свойства объекта PageSetup

Диапазон печати

Установить диапазон для печати из кода VBA Excel можно с помощью свойства PageSetup.PrintArea:

Worksheets(«Лист1»).PageSetup.PrintArea = «D7:L30»

Лист1.PageSetup.PrintArea = Selection.Address

Размеры полей

Свойства, отвечающие за размер полей печатной страницы:

Свойство Описание
LeftMargin Возвращает или задает размер левого поля
TopMargin Возвращает или задает размер верхнего поля
RightMargin Возвращает или задает размер правого поля
BottomMargin Возвращает или задает размер нижнего поля

Свойства, отвечающие за размер полей, предназначены для чтения и записи, выражаются в точках (1 точка равна 1/72 дюйма или ≈1/28 см). Тип данных — Double.

Для того, чтобы вручную не высчитывать количество точек в дюймах или сантиметрах, существуют методы Application.InchesToPoints и Application.CentimetersToPoints, которые автоматически переводят дюймы и сантиметры в точки.

Пример задания размеров полей для печатной страницы:

Sub Primer1()

    With Лист4.PageSetup

        .LeftMargin = 72  ‘1 дюйм (2,54 см)

        .TopMargin = Application.CentimetersToPoints(2)  ‘2 см

        .RightMargin = 28  ‘приблизительно 1 см

        .BottomMargin = Application.InchesToPoints(0.5)  ‘0,5 дюйма (1,27 см)

    End With

End Sub

Пример чтения размеров заданных полей для печатной страницы и запись их в ячейки диапазона [A1:A4] активного листа:

Sub Primer2()

    With Лист4.PageSetup

        [A1] = .LeftMargin

        [A2] = .TopMargin

        [A3] = .RightMargin

        [A4] = .BottomMargin

    End With

End Sub

Масштаб

Масштабирование рабочего листа для печати осуществляется в VBA Excel с помощью свойства PageSetup.Zoom:

Лист4.PageSetup.Zoom = 200  ‘Увеличение масштаба до 200% (от 100%)

Worksheets(«Лист4»).PageSetup.Zoom = 80  ‘Уменьшение масштаба до 80% (от 100%)

Свойство PageSetup.Zoom может задавать или возвращать значение от 10 до 400 процентов.

Ориентация страницы

За ориентацию печатной страницы отвечает свойство PageSetup.Orientation, которое возвращает или задает значение константы из коллекции XlPageOrientation.

Константы коллекции XlPageOrientation:

Константа Значение Описание
xlPortrait 1 Портретный режим (вертикальная ориентация)
xlLandscape 2 Ландшафтный режим (горизонтальная ориентация)

Примеры установки ориентации печатной страницы из кода VBA Excel:

Worksheets(«Лист4»).PageSetup.Orientation = xlPortrait

ActiveSheet.PageSetup.Orientation = xlLandscape


ГЛАВНАЯ

ТРЕНИНГИ

   Быстрый старт
   Расширенный Excel
   Мастер Формул
   Прогнозирование
   Визуализация
   Макросы на VBA

КНИГИ

   Готовые решения
   Мастер Формул
   Скульптор данных

ВИДЕОУРОКИ

ПРИЕМЫ

   Бизнес-анализ
   Выпадающие списки
   Даты и время
   Диаграммы
   Диапазоны
   Дубликаты
   Защита данных
   Интернет, email
   Книги, листы
   Макросы
   Сводные таблицы
   Текст
   Форматирование
   Функции
   Всякое
PLEX

   Коротко
   Подробно
   Версии
   Вопрос-Ответ
   Скачать
   Купить

ПРОЕКТЫ

ОНЛАЙН-КУРСЫ

ФОРУМ

   Excel
   Работа
   PLEX

© Николай Павлов, Planetaexcel, 2006-2022
info@planetaexcel.ru


Использование любых материалов сайта допускается строго с указанием прямой ссылки на источник, упоминанием названия сайта, имени автора и неизменности исходного текста и иллюстраций.

Техническая поддержка сайта

ООО «Планета Эксел»

ИНН 7735603520


ОГРН 1147746834949
        ИП Павлов Николай Владимирович
        ИНН 633015842586
        ОГРНИП 310633031600071 

ActiveWindow.Zoom

Вы можете использовать VBA для изменения масштаба рабочего листа. Вот код для изменения масштаба ActiveWindow на 50%:

Изменить масштаб на всех листах

Вы также можете просмотреть все листы в своей книге, чтобы установить стандартное масштабирование. Следующий макрос устанавливает масштаб для всех листов на 50%:

123456789101112131415161718192021 Дополнительный ZoomAll ()Dim ws как рабочий листApplication.ScreenUpdating = FalseДля каждого ws в листахws.ActivateActiveWindow.Zoom = 50СледующийApplication.ScreenUpdating = TrueКонец подписки

Zoom Zoom

И, наконец, волшебно растущий рабочий лист. Следующий макрос будет циклически перебирать Zooms для Sheet1, переходя от 10% до 200%, увеличиваясь на 10%, делая паузу между изменениями в секунду, а затем он вернет Sheet1 в исходное состояние.

1234567891011121314151617181920212223242526272829303132333435363738 Дополнительное масштабирование ()Переменная Dim x As Integer для циклаПеременная Dim OriginalZoom As Integer для исходного масштабированияSheet1.Activate ‘давайте работать с Sheet1OriginalZoom = ActiveWindow.Zoom ‘получить текущий масштаб’циклическое увеличение от 10 до 200 на 10Для x = от 1 до 20ActiveWindow.Zoom = x * 10Application.Wait Now + TimeValue («00:00:01»)Далее x’восстановить исходный масштабActiveWindow.Zoom = OriginalZoomКонец подписки

Вы поможете развитию сайта, поделившись страницей с друзьями

Skip to content

Как изменить масштаб изображения листа

На чтение 2 мин. Просмотров 2.1k.

Что делает макрос: Некоторые электронные таблицы огромны. Иногда, мы вынуждены изменить масштаб изображения, чтобы видеть всю таблицу на экране. Если вы обнаружите, что вы постоянно масштабируете таблицы, чередуя между сканированием больших разделов данных и чтением конкретных ячеек, вот удобный макрос, который будет автоматически изменять масштаб на двойном щелчке.

Содержание

  1. Как макрос работает
  2. Код макроса
  3. Как использовать

Как макрос работает

С помощью этого макроса, вы можете дважды щелкнуть на ячейку в таблице, чтобы увеличить на 200 процентов. Дважды щелкните снова и Excel изменит масштаб изображения обратно на 100 процентов. Также вы можете изменить значения в коде, чтобы соответствовало вашим потребностям.

Код макроса

Private Sub Worksheet_BeforeDouble Click()
 'Проверить текущее состояние - Увеличить
 'Увеличить на 100%
'Увеличение на 200%, если текущее 100
 If ActiveWindow.Zoom <> 100 Then
 ActiveWindow.Zoom = 100
 Else
 ActiveWindow.Zoom = 200
 End If
 End Sub

Обратите внимание, что побочный эффект двойного щелчка ячейки является то, что он переходит в режим редактирования. Вы можете выйти из режима редактирования, нажав клавишу Esc на клавиатуре. Если вам это мешает, несколько раз нажмите Esc при срабатывании этого макроса, вы можете добавить это заявление в конце процедуры:
Application.SendKeys («{ESC}»)
Этот оператор имитирует нажатия ESC на клавиатуре.

Как использовать

Для реализации этого макроса, вам нужно скопировать и вставить его в окно кода события Worksheet_BeforeDouble Click. Это позволяет запускать каждый раз, когда вы дважды щелкните на листе.

  1. Активируйте редактор Visual Basic, нажав ALT + F11.
  2. В окне проекта, найти свой проект / имя рабочей книги и нажмите на знак плюс рядом с ней, чтобы увидеть все листы.
  3. Нажмите на лист, из которого вы хотите, чтобы вызвать код.
  4. Выберите событие BeforeDoubleClick из событий в раскрывающемся списке.
  5. Введите или вставьте код во вновь созданном модуле.

BeforeDoubleClick

Формулировка задачи:

Кто ищет, тот найдёт

Много перерыл, много перепробовал. Нашёл. Делюсь кодом.
Код устанавливает масштаб всех листов документа с помощью ScrollBar, кроме нескольких листов, и отображает текущее значение масштаба.

Код к задаче: «Изменить масштаб всех листов документа»

textual

Private Sub Workbook_Open()
    Dim i&
    For i = 1 To Sheets.Count
        Sheets(i).Activate
       ActiveWindow.Zoom = 90
    Next
End Sub

Полезно ли:

5   голосов , оценка 3.800 из 5

изменение масштаба листа в userform

Kioto

Дата: Среда, 22.02.2017, 10:12 |
Сообщение № 1

Группа: Пользователи

Ранг: Новичок

Сообщений: 36


Репутация:

0

±

Замечаний:
0% ±


Excel 2007

Здравствуйте, прошу помочь понять, как изменять масштаб листа находясь в форме.
Решение, которое было найдено в интернете не помогло

К сообщению приложен файл:

1852363.xls
(47.5 Kb)

 

Ответить

sboy

Дата: Среда, 22.02.2017, 10:34 |
Сообщение № 2

Группа: Друзья

Ранг: Участник клуба

Сообщений: 2566


Репутация:

724

±

Замечаний:
0% ±


Excel 2010

Добрый день.
[vba]

Код

Private Sub ScrollBar1_Change()
ActiveWindow.Zoom = ScrollBar1.Value
End Sub

Private Sub UserForm_Initialize()
ScrollBar1.Min = 10
ScrollBar1.Max = 400
ScrollBar1.SmallChange = 10
ScrollBar1.LargeChange = 50
End Sub

[/vba]

К сообщению приложен файл:

8987335.xls
(52.0 Kb)


Яндекс: 410016850021169

 

Ответить

Kioto

Дата: Среда, 22.02.2017, 11:12 |
Сообщение № 3

Группа: Пользователи

Ранг: Новичок

Сообщений: 36


Репутация:

0

±

Замечаний:
0% ±


Excel 2007

sboy, спасибо, понятно теперь

 

Ответить

Понравилась статья? Поделить с друзьями:
  • Excel vba обновить запросы
  • Excel vba массивы присвоение значений
  • Excel vba обновить запрос
  • Excel vba обновить все подключения
  • Excel vba массивы данных