Vba word его объекты

Аннотация: Лекция посвящена описанию объектной модели MS Word и подробному описанию методов, свойств и событий Application.

9.1. Объектная модель MS Word

Microsoft Word 2007, как, впрочем, и другие приложения Office, имеет большую объектную модель, в которую входят множество объектов и коллекций. Однако на практике чаще всего используются лишь некоторые из них.

В частности, это следующие:

  • Word (Microsoft Word) — чтобы вызывать объекты Microsoft Office Word из других приложений используется объект Word.
  • Application (Приложение) — объект, который включает в себя все остальные объекты и коллекции. Сам объект Application включается в объект Word.
  • Documents (Документы) — коллекция, которая включает в себя объекты Document (Документ). Объект Document представляет собой документ, с которым вы работаете в редакторе.
  • Bookmarks (Закладки) — c помощью объектов этой коллекции можно задавать места в документе, в которые, при автоматическом создании, можно вставлять изменяемые части.
  • Paragraphs (Абзацы), Sentences (Предложения), Words (Слова), Characters (Символы), Tables (Таблицы), OMath (Математические формулы), Эти коллекции, содержащие объекты, соответствующие их названиям, могут использоваться для обработки слов документа ( Words ), предложений ( Sentences ), отдельных символов ( Characters ) и т.д.
  • Selection (Выделенная область) — представляет собой выделенную область документа или позицию, в которую будет осуществляться вставка очередного символа. Этот объект часто используют при создании простых документов. Однако у него есть существенные недостатки, что делает предпочтительнее использование объекта Range в большинстве случаев.
  • Range (Диапазон) — входит в Document и другие объекты, представляет собой диапазон документа, ограниченный начальным и конечным символом.

Работая с объектной моделью MS Word следует понимать, что, например, объекты Document и Selection могут содержать одинаковые коллекции объектов, например, и там и там есть коллекция Characters, в которую входят объекты Character — то есть — символы. Однако в случае с объектом Document мы можем работать с любым символом документа, а в случае с Selection — лишь с символами в пределах выделенной области. Однако, несмотря на различия, и там и там коллекция Characters имеет одинаковые свойства и методы. То же самое касается и других коллекций и объектов.

Давайте начнем с объекта Application и здесь же поговорим об использовании объектных переменных.

9.2. Работа с объектными переменными

Объектные переменные — это переменные, которые хранят ссылки на объекты. Чтобы инициализировать объектную переменную, нужно использовать ключевое слово Set. Например, так (листинг 9.1.):

Set obj_NewWord = Word.Application


Листинг
9.1.
Связывание объекта с объектной переменной

Здесь вы можете видеть присваивание переменной ссылки на объект Word.Application. Код, подобный этому, нужен в других приложениях Microsoft Office для запуска нового экземпляра MS Word.

Для того чтобы вы могли работать с Microsoft Word из других приложений — подключите библиотеку Microsoft Word 12.0 Object Library. Сделать это можно, открыв в редакторе окно References командой Tools o References.

Немного ниже мы поговорим о том, что можно делать с объектными переменными, а пока сосредоточимся на их объявлении и инициализации.

Как видите, в листинге 9.1 мы не объявляли переменную — мы сразу присвоили ей ссылку на объект. При последующей работе с такой необъявленной объектной переменной, мы не сможем пользоваться подсказкой по свойствам и методам. Вспомните — когда вы набираете в редакторе имя элемента управления и ставите после него точку — вы видите подсказку. Это очень удобно, так как позволяет избежать ошибок и излишних «походов» в справочную систему VBA.

Для того чтобы справка по свойствам и методам работала, объектную переменную надо сначала объявить, а потом присвоить ей ссылку на объект. Например, так (листинг 9.2.):

Dim obj_NewWord As Word.Application
Set obj_NewWord = Word.Application


Листинг
9.2.
Предварительное объявление объектной переменной

Ссылку на объект можно присвоить в процессе объявления переменной. Для этого нужно воспользоваться ключевым словом New (листинг 9.3.):

Dim obj_NewWord As New Word.Application


Листинг
9.3.
Ключевое слово New при объявлении переменной

Переменную, объявленную таким образом, мы можем сразу же использовать по назначению. Новый экземпляр объекта будет создан при первом обращении к нему.

О том, как же пользоваться объектными переменными, скорее даже не ими, а объектами, на которые они ссылаются, мы поговорим ниже.

9.3. Объект Application — приложение

09-01-With For Each.docm — пример к п. 9.3.

Объект Application можно представить в виде приложения Microsoft Word.

Такой код позволит вывести в окно сообщения информацию об имени приложения:

Как видите, здесь мы обратились к свойству Name (Имя) объекта Application. Вот, что будет выведено при его исполнении (рис. 9.1.).

Свойство Name объекта Application

Рис.
9.1.
Свойство Name объекта Application

Здесь мы обходимся без объектных переменных, работая с уже существующим объектом. Ведь если этот код исполняется в Microsoft Word, это значит, что сам Microsoft Word уже запущен.

Чтобы упростить обращение к нескольким свойствам объекта, можно воспользоваться оператором With-End With. Этот оператор позволяет обращаться к нескольким свойствам или методам объекта в упрощенной форме. Например, чтобы вывести имя приложения и узнать номер сборки программы нужно воспользоваться таким построением (листинг 9.4.):

With Application
        MsgBox .Name
        MsgBox .Build
    End With


Листинг
9.4.
Оператор With — End With

Здесь мы использовали объект Application — вместо него может быть любой другой объект или объектная переменная.

Еще один оператор, которым удобно пользоваться при работе с объектами и коллекциями — это For Each…Next.

Например, для вывода в окнах сообщений имен всех открытых документов, можно написать такой код (листинг 9.5.):

Dim var_Doc
    For Each var_Doc In Application.Documents
       MsgBox var_Doc.Name
    Next var_Doc


Листинг
9.5.
Оператор For Each — Next

Var_Doc — это переменная типа Variant. Коллекция Application.Documents содержит все открытые документы. При каждом проходе цикла в переменную var_Doc записывается ссылка на очередной объект в коллекции.

Чтобы выйти из цикла, можно воспользоваться оператором Exit For.

Сейчас мы кратко опишем важнейшие методы, свойства и события объекта Application.

9.4. Методы объекта Application

9.4.1. BuildKeyCode, KeyString — горячие клавиши

BuildKeyCode возвращает уникальный цифровой код для заданной комбинации клавиш. Используется при назначении «горячих клавиш» для выполнения различных операций.

KeyString возвращает комбинацию клавиш для переданного кода.

Ниже мы рассмотрим пример программного назначения клавиатурной комбинации для вызова макроса.

9.4.2. ChangeFileOpenDirectorу — путь для работы с файлами

ChangeFileOpenDirectory позволяет установить директорию, в которой Microsoft Word ищет файлы для открытия. В установленной папке программа будет искать файлы при программном открытии файлов и при вызове окна открытия файлов.

Выбранная директория будет использоваться для открытия файлов по умолчанию лишь до тех пор, пока Word не будет перезапущен.

Например, чтобы установить папку » C:Новые документы » в качестве папки по умолчанию, можно использовать такой код (листинг 9.6.):

Application.ChangeFileOpenDirectory ("C:Новые документы")


Листинг
9.6.
Установка новой папки по умолчанию

Следует отметить, что если мы вызываем метод или свойство объекта Application из макроса Microsoft Word, мы можем опускать вызов Application — то есть, в вышеприведенном примере можно написать так:

ChangeFileOpenDirectory ("C:Новые документы")

9.4.3. CleanString — очистка строк

CleanString очищает переданную строку от непечатаемых и специальных символов, превратив ее в обычный текст. Такой же текст можно получить, если скопировать текст из Microsoft Word в Блокнот, а потом — обратно. Например, с помощью такого кода можно получить очищенную строку из выделенной области документа (листинг 9.7.).

str_Clean = Application.CleanString(Selection.Text)


Листинг
9.7.
Очистка строки

9.4.4. Keyboard — программное переключение раскладки

Keyboard позволяет программно переключать раскладку клавиатуры. При переключении используется идентификатор языковых и клавиатурных установок. Чтобы включить русскую раскладку, можно воспользоваться таким кодом (листинг 9.8.):

Application.Keyboard 1049


Листинг
9.8.
Переключение на русскую раскладку клавиатуры

Очевидно, что 1049 — это код русского языка. Для включения английской раскладки используйте этот метод с идентификатором 1033.

9.4.5. ListCommands — справка по горячим клавишам

ListCommands это необычный метод — если вызвать его с параметром True (листинг 9.9.) — он создаст новый документ, содержащий таблицу со списком клавиатурных сочетаний, назначенных командам MS Word. Таблица содержит несколько десятков страниц.

Application.ListCommands True


Листинг
9.9.
Вывод информации о горячих клавишах

9.4.6. NewWindow — копия окна активного документа

09-02-New Window.docm — пример к п. 9.4.6.

NewWindow создает копию окна активного документа. Это может быть полезным например, для того, чтобы вывести один и тот же документ на два монитора при работе с расширенным рабочим столом и т.д. Например, метод можно вызвать так:

Application.NewWindow


Листинг
9.10.
Создание копии окна активного документа

При необходимости можно задать, для какого именно документа вы хотите создать копию окна. Однако, это потребует использования других объектов. Например — коллекции Windows, содержащей окна документов. Такой код (листинг 9.11.) создаст одну копию для каждого открытого окна:

For i = Application.Windows.Count To 1 Step -1
    Application.Windows.Item(i).NewWindow
Next i


Листинг
9.11.
Создание копии для каждого открытого окна

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

В этом примере вам встретились неизвестные ранее свойства Count и Item. Первое обычно содержит количество элементов в коллекции, второе позволяет обращаться к элементам по индексам или именам.

При создании копии после имени документа появляется двоеточие с номером окна, например, «:1» для первого, «:2» для второго и т.д.

9.4.7. OnTime — запуск макросов по расписанию

09-03-OnTime.docm — пример к п. 9.4.7.

OnTime позволяет устанавливать таймер, по которому можно запустить макрос в определенное время. Например, чтобы выполнить макрос MyMacros, который хранится в том же документе, что и исполняемый макрос, достаточно выполнить такой код (листинг 9.12.).

Application.OnTime When:="08:37:00", Name:="MyMacros"


Листинг
9.12.
Установка таймера запуска макроса

Параметр When указывает на время запуска, параметр Name — на имя макроса. Важно, чтобы макрос был доступен как в момент запуска таймера, так и в момент запуска самого макроса. Для того чтобы это условие соблюдалось, желательно хранить макросы, запускаемые по таймеру, в Normal.dotm, в другом глобальном шаблоне, или в том же документе, в котором произошел запуск таймера.

Как видите, мы привели пример лишь для запуска макроса в строго определенное время. А как же быть, если нужно запустить макрос, например, через пятнадцать секунд после выполнения какой-либо процедуры? Ответ прост (листинг 9.13.)

Application.OnTime _ 
When:=Now + TimeValue("00:00:15"), _ 
Name:="MyMacros"


Листинг
9.13.
Запуск макроса по расписанию

Здесь мы запускаем тот же самый макрос, но уже через 15 секунд после установки таймера. Функция Now имеет тип Date и возвращает текущую дату и время, а функция TimeValue преобразует переданное ей время в формат Date.

Если вы хотите, чтобы какой-то макрос запускался с некоторой периодичностью — установку таймера на запуск этого макроса можно установить в нем. Первый запуск макроса можно произвести вручную или каким-то другим способом (например — по событию приложения, с помощью автоматически выполняемого макроса), а последующие запуски этот макрос будет инициировать самостоятельно.

2006 г.

Word и его объекты
Лекция из курса «Основы офисного программирования и документы Word»

Биллиг Владимир Арнольдович
Интернет-Университет Информационных Технологий, INTUIT.ru

Назад Оглавление Вперёд

Свойства объекта Word.Application

Свойства любого объекта делятся на две группы: свойства-участники (объекты) и терминальные свойства (обычные переменные Visual Basic). Свойства-участники Word.Application приведены в таблицах 1.1 и 1.2. Там они были перечислены, сейчас мы рассмотрим их чуть более подробно. Но вначале несколько слов о более простой группе терминальных свойств.

Терминальные свойства

Терминальные свойства просты для понимания, и я не буду долго на них останавливаться. Большинство из них являются общими для всех объектов Application. Попытаюсь сейчас дать небольшой обзор терминальных свойств, объединяя их в группы:

  • Свойства Top, Left, Heihgt, Width, Caption определяют размеры и заголовок окна приложения.
  • Свойства, начинающиеся с префикса User, — UserAddress, UserName и другие задают характеристики пользователя.
  • Группа булевых свойств, начинающихся с префикса Display, — DisplayScreenTips, DisplayStatusBar и другие позволяют включать или выключать отображение на экране тех или иных элементов интерфейса.
  • Группа свойств, начинающихся префиксом Default — DefaultSaveFormat, DefaultTableSeparator позволяет устанавливать некоторые характеристики, используемые приложением по умолчанию.
  • Группа булевых свойств, использующих суффикс Available — MAPIAvailable, MouseAvailable, MathCoprocessorAvailable устанавливают доступность некоторых устройств.
  • Другие свойства — булевы и не булевы задают другие многочисленные характеристики, например, CapsLock и NumLock позволяют определить, нажаты ли на клавиатуре соответствующие клавиши, Path — путь к каталогу, содержащему Word, ActivePrinter — активный принтер и так далее.

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

Public Sub WorkWithTerm()
   'Работа с терминальными свойствами
   'Выключаю опции
   Application. DisplayStatusBar = False
   Application. DisplayRecentFiles = False
   
End Sub

Листинг 1: html, txt

Изменяя терминальные свойства DisplayStatusBar и DisplayRecentFiles, я выключил панель статуса и показ в меню File файлов последнего использования. Убедившись в том, что они действительно выключились, я немедленно включил их уже руками, взведя соответствующие флажки в меню Tools|Options.

Рассмотрю подробнее лишь одно терминальное свойство, не столь тривиальное и отличающееся по своему духу от других свойств. Свойство IsObjectValid(obj As Object) и свойством назвать нельзя. Скорее это метод, аргументом которого является некоторый объект произвольного класса, а возвращаемое значение булевого типа показывает, существует ли объект, заданный аргументом метода (свойства). Это свойство полезно применять при работе, например, с коллекциями. Прежде чем начинать работу с тем или иным элементом коллекции, полезно проверить, а существует ли такой элемент, или, возможно, он уже был удален. Вот пример работы с этим свойством:

Public Sub IsObjectProp()
   'В этом примере используется свойство IsObjectValid
   Dim MyPath As String
   Dim SecondDoc As Document
   MyPath = ActiveDocument.Path
   'Определяем объект
   Set SecondDoc = Documents.Open(MyPath & "DocTwo.doc")
   'Удаляем объект, возможно, по ошибке
   Documents(1).Close
   'Теперь нам объект понадобился
   If Not IsObjectValid(SecondDoc) Then
      'Добавляем элемент в коллекцию
      Set SecondDoc = Documents.Open(MyPath & "DocTwo.doc")
   End If
   'Работа с документом DocTwo
   Debug.Print SecondDoc.Name
   
End Sub	

Листинг 1: html, txt

Заметьте, при работе с этим свойством я использую созданный мной объект SecondDoc, поскольку не могу написать IsObjectValid(Documents(«DocTwo»)). Написать то, конечно, могу, но при выполнении возникнет ошибка. Ошибка не связана с самой функцией IsObject, — она возникнет раньше при вычислении значения аргумента — Documents(«DocTwo»), поскольку в коллекции Documents этот элемент

Свойства — участники

Конечно, центральные объекты мира Word — это объекты, входящие в коллекции Documents и Templates, документы и шаблоны, открытые в приложении. Им-то и посвящена большая часть этой лекции. Но пока давайте хотя бы кратко коснемся объектов «второго плана».

Заголовки (CaptionLabels)

Коллекция объектов CaptionLabels (CaptionLabel) представляет заголовки, которые вставляются в документ одновременно со вставкой таблиц, рисунков, диаграмм и других подобных элементов документа. Следует отметить, что при вставке в документ каждого нового элемента определенного типа и его заголовка происходит автоматическая нумерация заголовков, (например, Рисунок 1, Рисунок 2 и т.д.).

В коллекцию разрешается добавлять новые заголовки и удалять существующие. При работе вручную следует выбрать в пункте Insert (Вставка) главного меню Word команду Caption (Название). В открывающемся диалоговом окне есть раскрывающийся список заголовков, из которого можно выбрать подходящий элемент и вставить его в документ. Кнопка New Label (Создать) позволяет добавить новый заголовок к уже имеющемуся списку. Кнопка Delete (Удалить) позволяет удалить заголовок. Вот как выглядит это окно:

Окно заголовков
Рис. 1.4.  Окно заголовков

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

Public Sub AddCaptions()
 'Работа с коллекцией заголовков
 
   Dim Item  As CaptionLabel
   With CaptionLabels
      Debug.Print .Count
      'Добавление трех заголовков
      .Add "Мой Рисунок"
      .Add "Диаграмма Excel"
      .Add "Мой Пример"
      Debug.Print .Count
      For Each Item  In CaptionLabels
         Debug.Print Item .Name
      Next Item 
      'Удаление последнего заголовка
      .item(.Count).Delete
   
   End With
End Sub

Листинг 1: html, txt

Вот результаты отладочной печати, появляющиеся в окне отладки (Immediate):

Листинг 1: html, txt

Этот пример типичен для работы с коллекциями. Здесь добавляются и удаляются элементы коллекции, определяется их число, организуется цикл по всем элементам. Покажем теперь, как, используя эту коллекцию, можно программно вставлять в текст документа в нужном месте те или иные заголовки:

Public Sub InsertLabelInDoc()
   'Вставка заголовка в текст документа
      'Вставка заголовков
      With ActiveDocument
         .Paragraphs.Add
         .Paragraphs.Last.Range.Select
         Selection.InsertCaption Label:="Диаграмма Excel"
         .Paragraphs.Add
         .Paragraphs.Last.Range.Select
         Selection.InsertCaption Label:=CaptionLabels(CaptionLabels.Count)
      End With
End Sub

Листинг 1: html, txt

В данном примере дважды будет вставлен заголовок «Диаграмма Excel». Конечно, реально этот заголовок следует вставлять после (перед) соответствующей диаграммой, но в примере заголовки вставляются в конец документа, в последний его абзац. Заметьте, при вставке происходит автоматическая нумерация заголовков, так что в тексте документа появятся два таких заголовка:

Листинг 1: html, txt

Автозаголовки (AutoCaptions)

Коллекция объектов AutoCaptions (AutoCaption) представляет заголовки, которые могут быть автоматически добавлены при вставке в документ OLE-объектов. В эту коллекцию, конечно же, ни добавлять, ни удалять элементы не разрешается, но можно включить или отключить автоматическое добавление заголовка при вставке того или иного OLE-объекта. Работа вручную идет в уже упомянутом диалоговом окне, открываемом по команде Caption. Программно это можно делать так:

Public Sub >WorkWithAutoLabels()
 'Работа с коллекцией автозаголовков
    Dim Item  As AutoCaption
 
      Debug.Print AutoCaptions.Count
      For Each Item  In AutoCaptions
         'Включение автоматической вставки заголовка
         item.AutoInsert = True
         Debug.Print Item .Name
      Next Item
      
   End Sub

Листинг 1: html, txt

Процедура WorkWithAutoLabels включает все автозаголовки и распечатывает их имена. Приведем первую семерку имен OLE-объектов из 28 объектов, которые можно добавить в текущий момент у меня на компьютере:

Листинг 1: html, txt

Автокоррекция (AutoCorrect)

Объект AutoCorrect поддерживает работу по автоматической коррекции набираемых текстов. Я широко использую возможности автокоррекции в своей работе. Чтобы не переключаться с русского на английский при печатании различных терминов, я ввел таблицу соответствующих замен. Теперь я печатаю «Ап», а получаю Application, печатаю «Во», а получаю Word и так далее. Возможности объекта AutoCorrect во многом совпадают с возможностями команды AutoCorrect (Автозамена) меню Tools. В следующем примере включаются все флажки, регулирующие процесс замены, и в коллекцию Entries, вложенную в объект, добавляются два элемента. Каждый элемент задается парой строк, первая из которых задает исходную строку, а вторая строку, заменяющую ее при автокоррекции печатаемого текста:

Public Sub WorkWithAutoCorrect()
   'Работа с объектом AutoCorrect
   'Включаются все флажки
    With AutoCorrect
      .CorrectInitialCaps = True
      .CorrectSentenceCaps = True
      .CorrectDays = True
      .CorrectCapsLock = True
      .ReplaceText = True
      .ReplaceTextFromSpellingChecker = True
      .CorrectKeyboardSetting = True
      
      'В коллекцию Entries, задающую замены при автокоррекции,
      'добавляются два элемента.
      .Entries.AddName:="ДЕ", Value:="Диаграмма Excel"
      .Entries.AddName:="ГЕ", Value:="График Excel"

   End With
End Sub

Листинг 1: html, txt

Перемещение по тексту. Объект Browser

Объект Browser позволяет перемещать точку вставки, указывающую на объекты в документе. Перейти можно к предыдущей или следующей точке редактирования документа. Можно также предварительно выбрать целевой объект, это может быть таблица, заголовок, комментарий или другой из некоторого набора возможных объектов, а затем переходить к следующему или предыдущему объекту выбранного типа. Вручную это делается с помощью трех инструментальных кнопок, расположенных в самом низу вертикальной полосы прокрутки окна документа. Покажем, как программно, перемещаясь по заголовкам, можно помочь пользователю найти в документе нужный ему заголовок. Вот соответствующая процедура:

Листинг 1: html, txt

Назад Оглавление Вперёд

3.2.1. Модель объектов word

Visual Basic
поддерживает набор объектов, соответствующих
элементам Microsoft Word 2000. Методы и свойства
этих объектов позволяют автоматизировать
все операции в Word.

Модель объектов
Microsoft Word 2000 включает около 180 объектов.
Полную схему модели объектов можно
просмотреть в разделе «Microsoft Word Objects»
справочной системы. Наиболее быстрый
способ получения подробного описания
конкретного объекта — щелкнуть по его
имени на схеме модели объектов. Однако
из всего многообразия объектов Word
практически небольшая их часть наиболее
часто используема.

Модель наиболее
часто используемых объектов и связь
между ними показана на рис. 3.2.

При открытии
Word становиться доступным корневой
объект Application, определяющий само
приложение и все, встроенные в него
объекты, задающие различные компоненты
Word.

Рассмотрим
наиболее важные классы объектов.




Caracters(Range)

Tables(Table)


Range

Words(Range)

Shapes(Shape)

Sentences(Range)

InlineShapes(InlineShape)

Paragraphs(Paragraph)

Fields(Field)

Sections(Section)

Рис. 3.2.Фрагмент
объектной модели Word

3.2.2.Объект Appication

Объект Appicationсамо приложение MS
WORD в целом. Он создается при запуске
Word. Через свойства и методы этого объекта
можно получить доступ к глобальным
параметрам приложения, управлять
внешним видом окна Word и
обращаться к объектам, занимающим более
низкие уровни в модели объектов Word.
Объект Application имеет более сотни элементов:
свойств, методов и событий.

Как уже говорилось
выше, свойства любого объекта делятся
на две группы: свойства – участники
(объекты) и терминальные свойства
(обычные переменные VBA).

Свойство- участник, представляющий
собой вложенный объект, возвращает
ссылку на данный объект. В объекте
Application более 30 коллекций и простых
объектов. Среди них наибольший интерес
представляют:

Documents(Document)
– коллекция документов Word, содержащая
все открытые документы;

Templates(Template)
– коллекция шаблонов Word, содержащая
все открытые шаблоны;

Windows(Window)
– коллекция, содержащая все открытые
окна;

Selection
– объект, задающий выделенную область;

Options
– объект, позволяющий программным путем
установить параметры приложения и
документа.

Среди многообразия методов объекта
Application целесообразно выделить те, которые
позволяют выполнять операции над
приложением в целом: Activate – активизация
приложения, Quit – выход из приложения и
осуществлять запуск макросов:

Run
– запуск макроса и OnTime
– запуск макроса в заданное время.

3.2.3. Объект Document

Объект Document представляет собой
новый или созданный ранее открытый
документ.

При запуске Word создается коллекция
открытых документов Documents, содержащая
как минимум один объект Document. Создавая
новый или открывая ранее созданный
файл, в коллекцию добавляется объект
Document. Получить доступ к нужному
объекту Document коллекции можно
выражением:

Documents (index),

Где index – имя файла или номер документа
в коллекции объектов Documents.

Через свойства и методы объекта Document и
коллекции Documents можно создавать,
открывать, активизировать и закрывать
документы.

Рассмотрим на примерах некоторые
свойства методы, позволяющие выполнять
эти операции над документами.

К свойствам объекта Document относятся:

Count – количество открытых в данный
момент документов;

ActiveDocument – активный документ.

Пример 3.3:

‘процедура выводит в окно отладки
имена всех открытых документов

Public Sub pr33()

Dim kol As Byte

Kol = Documents.Count

If kol >= 1 Then

For i = 1 To kol: Debug.Print
Documents(i).Name: Next

Else

MsgBox «Нет
открытых документов»

End If

End Sub

Пример 3.4:

‘процедура выводит в диалоговое окно
имя активного документа

Public Sub pr34()

If Documents.Count >= 1 Then

MsgBox ActiveDocument.Name

Else

MsgBox «Нет
открытых документов»

End If

End Sub

Основные методы объекта Document и
коллекции Documents:

Open – открывает файл, содержащий
существующий документ и автоматически
добавляет его в коллекцию;

Addдобавляет новый пустой
документ;

Save сохраняет изменения в существующем
документе без закрытия;

SaveAs (только для объекта) сохраняет
активный вновь созданный документ в
текущей папке;

Item – позволяет получить доступ к элементу
коллекции;

Activate (только для объекта)
активизирует открытый документ;

PrintOut (только для объекта)печать
документа;

Closeзакрывает документ.

Пример 3.5

‘процедура, используя метод Open,
возвращает объект Document,

‘представляющий
только что открытый документ Metvba.doc,
выводит

‘его имя и закрывает

Public sub pr35()

Set mydoc = _
Documents.Open(FileName:=»d:Met_matму_0719Metvba.doc»)

MsgBox
mydoc.Name

Mydoc.Close

End Sub

Пример 3.6:

‘Процедура перебирает коллекцию
Documents в поисках документа

‘Metvba.doc. Если он уже
открыт, то активизирует его, в ‘противном
случае – открывает

Public sub pr36()

For Each mydoc In Documents

If InStr(1,
mydoc.Name, «Metvba.doc») Then

mydoc.Activate

w = True

Exit For

Else

w = False

End If

Next mydoc

If w = False Then

Documents.Open
FileName:=»d:Met_matму_0719Metvba.doc»

End If

End Sub

Пример 3.7:

‘процедура после вывода имен открытых
документов закрывает их

Public Sub pr37()

If Documents.Count >= 1 Then

For i = 1 To Documents.Count: Debug.Print
Documents(i).Name: Next

Documents.Close

End If

End Sub

Пример 3.8:

‘Процедура закрывает документ
Metvba.doc без сохранения

Public pr38()

Documents(“Metvba.doc
“).Close SaveChanges:=wdDoNoSaveChanges

End Sub

Документ Word организован довольно сложно.
Текст документа может быть дополнен
таблицами, рисунками, документ может
содержать колонтитулы, сноски, ссылки
и т.д. Свойства-участники объекта Document
позволяют получить доступ к 44 вложенным
объектам, большинство из которых являются
коллекциями. Рассмотрим некоторые из
них, объединив объекты в группы.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]

  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #

Понравилась статья? Поделить с друзьями:
  • Vba word добавить документ к документу
  • Vba word select from to
  • Vba word для начинающих
  • Vba word save file
  • Vba word диалог сохранения