Статьи из блога
Макрос определения ориентации и формата страницы
Алексей спрашивает:
Имеется документ с несколькими страницами, которые имеют разную ориентацию и формат (А4 и А3). Как определить формат и ориентацию текущей страницы?
Для этих целей можно воспользоваться, например, таким макросом (с функцией):
Sub Ident_Orient_PaperSize() 'Определение ориентации и формата страницы документа If Selection.PageSetup.Orientation = wdOrientLandscape Then MsgBox "Ориентация текущей страницы - Альбомная" & vbCr _ & "Формат страницы - " & PaperSizeDoc(Selection.PageSetup.PaperSize) Else MsgBox "Ориентация текущей страницы - Книжная" & vbCr _ & "Формат страницы - " & PaperSizeDoc(Selection.PageSetup.PaperSize) End If End Sub Public Function PaperSizeDoc(iPS As Long) As String Dim ps(42) As String iPS = Selection.PageSetup.PaperSize ps(0) = "wdPaper10x14" ps(1) = "wdPaper11x17" ps(2) = "wdPaperLetter" ps(3) = "wdPaperLetterSmall" ps(4) = "wdPaperLegal" ps(5) = "wdPaperExecutive" ps(6) = "wdPaperA3" ps(7) = "wdPaperA4" ps(8) = "wdPaperA4Small" ps(9) = "wdPaperA5" ps(10) = "wdPaperB4" ps(11) = "wdPaperB5" ps(12) = "wdPaperCSheet" ps(13) = "wdPaperDSheet" ps(14) = "wdPaperESheet" ps(15) = "wdPaperFanfoldLegalGerman" ps(16) = "wdPaperFanfoldStdGerman" ps(17) = "wdPaperFanfoldUS" ps(18) = "wdPaperFolio" ps(19) = "wdPaperLedger" ps(20) = "wdPaperNote" ps(21) = "wdPaperQuarto" ps(22) = "wdPaperStatement" ps(23) = "wdPaperTabloid" ps(24) = "wdPaperEnvelope9" ps(25) = "wdPaperEnvelope10" ps(26) = "wdPaperEnvelope11" ps(27) = "wdPaperEnvelope12" ps(28) = "wdPaperEnvelope14" ps(29) = "wdPaperEnvelopeB4" ps(30) = "wdPaperEnvelopeB5" ps(31) = "wdPaperEnvelopeB6" ps(32) = "wdPaperEnvelopeC3" ps(33) = "wdPaperEnvelopeC4" ps(34) = "wdPaperEnvelopeC5" ps(35) = "wdPaperEnvelopeC6" ps(36) = "wdPaperEnvelopeC65" ps(37) = "wdPaperEnvelopeDL" ps(38) = "wdPaperEnvelopeItaly" ps(39) = "wdPaperEnvelopeMonarch" ps(40) = "wdPaperEnvelopePersonal" ps(41) = "wdPaperCustom" PaperSizeDoc = ps(iPS) End Function
Если вы не знаете, как подключить к документу и применить этот макрос, изучите следующие заметки с сайта:
Все советы с сайта Word Expert в книге Word 2003/2007. Народные советы
Рубрика: Вопрос-Ответ, Макросы, Стили и форматирование
Метки: макросы | параметры страницы | форматирование
Просмотров: 14984
Подписаться на комментарии по RSS
Версия для печати
Метки: макросы | параметры страницы | форматирование
Просмотров: 14984
Подписаться на комментарии по RSS
Версия для печати
Еще записи по вопросам использования Microsoft Word:
- 10 вопросов и ответов по редактору Word (1 часть)
- 3 способа очистки списка недавно открытых документов
- Word 2007: добавляем свою вкладку и свои команды
- Word 2007: полотно, рисунки, линии
- Word 2007: смена формата сохранения файла
- Word 97 - решение проблемы с отображением символов на линейке
- Word 97. Слияние документов как один из способов упростить свою работу
- Абзац с цветным фоном
- Автозаполняемые колонтитулы
- Автоматизация текстового набора в Word
- Автоматическая запись макроса
- Автоматическая нумерация билетов
- Автоматическая расстановка переносов
- Автоматическое обновление полей при открытии документа
- Автоматическое сохранение документа при его закрытии
- Автотекст с последовательной нумерацией
- Автоформат документов
- Белый текст на синем фоне в Word 2007
- Буквица
- Быстрая смена ориентации страниц документа
- Быстрое изменение стиля форматирования текста
- Быстрое перемещение между открытыми документами Word
- Быстрое создание нового документа на основе шаблона
- Быстрое удаление границ у таблицы
- Быстрый ввод текста с помощью команды =rand()
Комментариев: 4
Функция PaperSizeDoc работает правильно, но с методической точки зрения кое-что в ней лишнее. Либо не надо передавать параметр iPS, либо внутри функции не надо присваивать ему значение (iPS = Selection.PageSetup.PaperSize). Лично мне больше нравится второй вариант, тогда сразу видно, от чего зависит функция.
Леонид, действительно функция работает и без оператора присваивания iPS. Но тогда мне не совсем ясно, почему работает в функции оператор PaperSizeDoc = ps(iPS), ведь iPS мы исключили?
Upd: А, все увидел - мы же объявили эту переменную в аргументах функции. Просмотрел...
А как изменить этот код, показывающий формат и ориентацию выделенной страницы, на код показывающий ориентацию и формат каждого листа в документе?
Обратитесь на наш форум, там помогут.