Коллекция Word Windows и объекты Window — работа с окнами MS Word

Коллекция Word Windows и объекты Window — работа с окнами MS Word Объектная модель Microsoft Word

Всем привет, с вами автор блога scriptcoding.ru. В этой статье мы рассмотрим коллекцию Windows и объекты Window, которые предоставляют окно Microsoft Word документа.

Как мы помним из прошлых статей, для создания нового документа в первую очередь нужно получить ссылку на объект Word.Application, а уже далее, с помощью метода Add коллекции Documents мы можем создать новый документ. Кроме того, у нас есть выбор: создать несколько документов, которые будут непосредственными наследниками класса Application, или – создать несколько экземпляров Word.Application и от них создавать документы.

Коллекция Windows и классы Window — окно документа Word

Доступ к коллекции Windows можно получить двумя способами, используя свойство Windows таких классов как:

  • Word.Application – В данном случаем мы получим доступ ко всем окнам программы Word.
  • Word.Document – Тут мы получаем доступ к окнам MS Word только для заданного документа.

Далее по ходу статьи будет упоминаться режим Side-By-Side – это режим, когда в одной области экрана отображаются два окна Microsoft Word документа параллельно друг другу.

Коллекция Windows – окна программы Word

окно редактора Microsoft Word

Коллекция объектов Window, которые представляют все имеющиеся окна MS Word, для класса Application содержит все окна в программе Word, а для класса Documentтолько окна MS Word, которые отображаются указанным документом.

Свойства и методы

Count– Содержит количество объектов Window.

Add(Window) — Возвращает объект Window, представляющий новое окно программы Word.

Window – Данный параметр содержит объект Window, для которого вы хотите открыть еще одно окно документа Word. Если этот аргумент опущен, открывается новое окно MS Word редактора для активного документа.

Например:

Windows.Add Window:=Documents("MyDoc.doc").Windows(1)
oWord.Windows.Add oDoc(1).Windows(1)

Arrange(ArrangeStyle) – Определяет параметры расположения. Параметр ArrangeStyle содержит значение константы WdArrangeStyle:

  • wdIcons — 1 — В виде иконок в одном окне.
  • wdTiled — 0 – Все в одном окне.

CompareSideBySideWith(Document) – Позволяет открыть две области в режиме Side-By-Side.

Document – Второй документ для просмотра.

BreakSideBySide() – Метод отменяет режим Side-By-Side для просмотра двух документов, если такой был активирован.

ResetPositionsSideBySide() — Метод сбрасывает режим Side-By-Side для двух документов, если они находятся в режиме предварительного просмотра.

Item(index) — Возвращает отдельный объект Window в коллекции Windows по его номеру (index).

Класс Window – окно Microsoft Word

оно редактора MS Word

Свойства

Active– Значение true, если указанное окно является активным. Только чтение.

Caption— Возвращает или задает текст заголовка, который отображается в строке заголовка документа или приложения.

Свойства с префиксом Displayпозволяют управлять линейками и полосами прокрутки. Свойства задают или возвращают логические значения true или false, и доступны как для чтения, так и для записи.

DisplayHorizontalScrollBar, DisplayVerticalScrollBar, DisplayLeftScrollBar— Данные свойства позволяют включить (true) или отключить (false) горизонтальную, вертикальную или левую полосу прокрутки.

DisplayRulers– Скрыть или показать линейку.

DisplayVerticalRuler— Скрыть или показать вертикальную линейку.

DisplayRightRuler– Значение true, если в правой части окна MS Word документа в режиме предварительного просмотра появляется вертикальная линейка.

DisplayScreenTips– Значение true, если комментарии, сноски, примечания и ссылки отображаются в виде подсказок.

DocumentMap– Значение true, если отображается схема документа. Чтение и запись.

EnvelopeVisible— TRUE, если заголовок почтового сообщения видно в окне документа Word. Значение по умолчанию False. Чтение и запись.

Heightи Width– Свойства возвращают или задают высоту или ширину окна Microsoft Word в пунктах.

Hwnd— Возвращает дескриптор заданного окна программы Word. Только чтение.

Index— Возвращает позицию элемента Window в коллекции Windows. Только чтение.

Nextи Previous— Свойства возвращают ссылки на следующий или предыдущий объект Window в коллекции Windows.

UsableHeightи UsableWidth– Высота и ширина рабочей области в пунктах. Только чтение.

WindowState— Возвращает или устанавливает состояние указанного окна программы Word. Значение константы WdWindowState:

  • wdWindowStateMaximaze – 1 — максимизировать размер.
  • wdWindowStateMinimize 2 — минимизировать размер.
  • wdWindowStateNormal – 0 — обычный размер.

Split– Если значение true, то окно будет разделено на несколько панелей. Чтение и запись.

SplitVertical— Возвращает или задает размер сплит-панели в процентах.

Leftи Top— Свойства возвращают или устанавливают горизонтальное и вертикальное положение окна Microsoft Word. Они актуальны только тогда, если окно документа Word не находится в развернутом виде.

Type— Возвращает тип окна MS Word. Значение константы WdWindowType:

  • wdWindowDocument — 0 — окно документа Word.
  • wdWindowTemplate — 1 — окно шаблона Word.

VerticalPercentScrolled— Возвращает или устанавливает позицию прокрутки по вертикали в процентах от длины документа.

Visible– Позволяет показать (true) или скрыть (false) заданное окно программы Word.

WindowNumber— Возвращает номер окна Microsoft Word, отображаемого в указанном документе. Например, если заголовок «Документ1.doc: 2», то это свойство возвращает номер 2. Только чтение.

Panes— Возвращает коллекцию Panes, которая представляет все панели для заданной области.

Document— Возвращает класс Document, связанный с указанной панелью, окном MS WORD, или выделением. Только чтение.

ActivePane— Возвращает класс Pane, представляющий активную панель для указанного окна Microsoft Word программы. Только чтение.

Selection— Возвращает класс Selection, представляющий выбор или точку вставки. Только чтение.

View— Возвращает класс View, представляющий просмотр для указанного окна или панели.

Методы

работа с MS WORD окном

Activate() — Активизирует указанное окно документа Word.

Close(SaveChanges, RouteDocument) — Закрывает указанное окно программы Word. Оба параметра являются дополнительными.

SaveChanges — Определяет, действия при сохранении документа. Значение константы WdSaveOptions:

  • wdDoNotSaveChanges — 0 — Не сохранять сделанные изменения.
  • wdPromptToSaveChanges — 2 — Запросить у пользователя, чтобы сохранить внесенные изменения.
  • wdSaveChanges — 1 — Сохранить сделанные изменения автоматически без запроса пользователя.

RouteDocument — TRUE, чтобы направить документ к следующему получателю.

LargeScroll(Down, Up, ToRight, ToLeft) — Прокрутка окна или панели на указанное число экранов. Все параметры дополнительные и должны содержать числовые значения.

Down — Значение для прокрутки вниз.

Up – Значение для прокрутки вверх.

ToRight — Значение для прокрутки вправо.

ToLeft — Значение для прокрутки влево.

SmallScroll(Down, Up, ToRight, ToLeft) — Прокрутка окна документа Word или панели на указанное число строк.

PageScroll(Down, Up) — Прокрутка указанной панели или окна программы Word построчно.

Down — Количество страниц для прокрутки вниз. По умолчанию значение 1.

Up — Количество страниц для прокрутки вверх.

ScrollIntoView(obj, start) — Прокрутка окна MS WORD на указанный диапазон или форму.

Obj – Обязательный параметр, который является объектом Range или Shape.

Start – Принимает логические значения true или false. Параметр определяет направление прокрутки относительно выбора или формы. Дополнительно.

NewWindow() — Открывает новое окно MS Word. Возвращает объект Window.

ToggleRibbon() – Показывает (true) или скрывает (false) панель с компонентами.

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

окно Word документа
работа с окном Word документа

Пример на языке VBSCRIPT:

' ----------------------------------------------------------------------------
' Коллекция Windows и классы Window
' работа с окнами редактора Word
' Window.vbs
' ----------------------------------------------------------------------------
Option Explicit
 
dim oWord, oDoc, i, MyText, oSel
 
Set oWord = CreateObject("Word.Application")
Set oDoc = oWord.Documents
oDoc.Add()
oDoc.Add()
Set oSel = oWord.Selection
oWord.Visible = True
 
MyText = "Окно Word документа. "
 
For i=0 to 40
    oSel.TypeText MyText & MyText & MyText & MyText & MyText & MyText & MyText
    oSel.TypeParagraph
Next
 
call oWindow_1
'call oWindow_2
'call oWindow_3
'call oWindow_4
 
Sub oWindow_1()
    oDoc(1).Windows.Add                     ' создаем новое MS Word окно для документа oDoc(1)
    oWord.Windows.Arrange 0               ' все MS Word окна расположены в одной области
End Sub
 
Sub oWindow_2()
    oDoc(2).Activate                                                                ' активируем документ oDoc(2)
    oDoc(2).Windows.CompareSideBySideWith oDoc(1)                    ' размещаем два документа в режиме Side-By-Side
End Sub
 
Sub oWindow_3()
    oDoc(1).Windows(1).Split=true                                ' добавляем разделитель
    oDoc(1).Windows(1).SplitVertical = 80                   ' задаем соотношение размер разделителя в 80 процентов
End Sub
 
Sub oWindow_4()
    oDoc(1).Windows(1).WindowState = 0                               ' обычный размер
    oDoc(1).Windows(1).Left = 15                                            ' отступ слева
    oDoc(1).Windows(1).Top = 30                                            ' отступ сверху
    oDoc(1).Windows(1).VerticalPercentScrolled = 70                         ' вертикальна прокрутка на 70 процентов
End Sub
окно Word программы
работа с окном Word программы

Пример на языке JSCRIPT:

// ----------------------------------------------------------------------------
// Коллекция Windows и классы Window
// работа с окнами программы Word
// Window.vbs
// ----------------------------------------------------------------------------
var oWord1, oDoc1, i, MyText1, oSel1;
 
oWord1 = WScript.CreateObject("Word.Application");
oDoc1 = oWord1.Documents;
oDoc1.Add();
oDoc1.Add();
oSel1 = oWord1.Selection;
oWord1.Visible = true;
 
MyText1 = "Окно Word программы. ";
 
for (i=0; i<=40; i++){
    oSel1.TypeText (MyText1 + MyText1 + MyText1 + MyText1 + MyText1 + MyText1 + MyText1);
    oSel1.TypeParagraph();
}
 
oWindow_1()
//oWindow_2()
//oWindow_3()
//oWindow_4()
 
function oWindow_1(){
    oDoc1(1).Windows.Add();                                       // создаем новое MS Word окно для документа oDoc1(1)
    oWord1.Windows.Arrange(0);                      // все MS Word окна расположены в одной области
}
 
function oWindow_2(){
    oDoc1(2).Activate();                                                                         // активируем документ oDoc1(2)
    oDoc1(2).Windows.CompareSideBySideWith(oDoc1(1));                         // размещаем два документа в режиме Side-By-Side
}
 
function oWindow_3(){
    oDoc1(1).Windows(1).Split=true;                             // добавляем разделитель
    oDoc1(1).Windows(1).SplitVertical = 80;                            // задаем соотношение размер разделителя в 80 процентов
}
 
function oWindow_4(){
    oDoc1(1).Windows(1).WindowState = 0;                                        // обычный размер
    oDoc1(1).Windows(1).Left = 15;                                        // отступ слева
    oDoc1(1).Windows(1).Top = 30;                                          // отступ сверху
    oDoc1(1).Windows(1).VerticalPercentScrolled = 70;                      // вертикальна прокрутка на 70 процентов
}

В данных примерах все довольно просто. Вначале происходит стандартная схема – создание ссылки на объект Word.Application и создание нового документа. Тут я создал два документа: oDoc(1) и oDoc(2). Далее происходит объявление четырех процедур (функций), давайте их рассмотрим:

oWindow_1 – Тут мы просто создаем новое Microsoft Word окно для документа, доступ к которому хранится в переменной oDoc(1). Плюс, все документы и созданное MS Word окно будут размещаться в одной области.

oWindow_2 – Тут происходит активация документа oDoc(2). Далее мы размещаем в режиме Side-By-Side документы oDoc(1) и oDoc(2).

oWindow_3 – Тут мы просто добавляем разделитель для окна Word программы oDoc(1). Соотношение разделенных частей будет 20:80.

oWindow_4 – Тут все просто, делаем параметры просмотра нормальными, и устанавливаем отступы и положение левой прокрутки.

Оцените статью
Технологии программирования и ведение блога
Добавить комментарий