Vba работа с word application

Создание нового экземпляра приложения Word из кода VBA Excel или подключение к открытому для работы с документами. Функции CreateObject и GetObject.

Работа с Word из кода VBA Excel
Часть 1. Управление приложением Word
[Часть 1] [Часть 2] [Часть 3] [Часть 4] [Часть 5] [Часть 6]

Создание объекта Word.Application

Экземпляр приложения Word необходим для того, чтобы с его помощью создавать новые документы или открывать существующие для редактирования из кода VBA Excel.

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

Раннее связывание приложения Word

Создание нового экземпляра Word.Application и присвоение ссылки на него переменной myWord:

‘Создание экземпляра приложения Word

‘с ранней привязкой одной строкой

Dim myWord As New Word.Application

‘Создание экземпляра приложения Word

‘с ранней привязкой двумя строками

Dim myWord As Word.Application

Set myWord = New Word.Application

Для раннего связывания переменной с объектом Word.Application необходимо подключить в редакторе VBA Excel ссылку на библиотеку Microsoft Word Object Library, если она не подключена. Подключается ссылка в окне «References VBAproject», перейти в которое можно через главное меню редактора: Tools–>References…

Раннее связывание позволяет при написании кода использовать лист подсказок для выбора и вставки свойств и методов привязанных объектов (Auto List Members). Если проект VBA Excel создается на заказ, то, после его завершения, раннее связывание следует заменить на позднее, так как на компьютере пользователя может не оказаться нужной библиотеки, и код работать не будет.

Позднее связывание приложения Word

Создание нового экземпляра Word.Application с помощью функции CreateObject и присвоение ссылки на него переменной myWord:

Dim myWord As Object

Set myWord = CreateObject(«Word.Application»)

Присвоение переменной myWord ссылки на открытый экземпляр приложения Word с помощью функции GetObject:

Dim myWord As Object

Set myWord = GetObject(, «Word.Application»)

Если открытого приложения Word нет, выполнение функции GetObject приведет к ошибке. Чтобы ее избежать, следует предусмотреть создание нового экземпляра Word.Application с помощью функции CreateObject, если открытое приложение не будет найдено (смотрите пример 3).

В программы VBA Excel, работающие с Word, следует включать обработчик ошибок.

Закрытие объекта Word.Application

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

‘отображаем приложение Word

myWord.Visible = True

‘освобождаем переменную от ссылки

Set myWord = Nothing

Если перед завершением процедуры VBA Excel необходимо приложение Word закрыть, используйте метод Quit:

‘закрываем приложение Word

myWord.Quit

‘освобождаем переменную от ссылки

Set myWord = Nothing

Если переменная не содержит ссылку на приложение (myWord = Nothing), метод Quit возвратит ошибку. Чтобы этого не произошло, перед применением метода Quit необходимо проверить наличие ссылки в переменной myWord (смотрите пример 3).

Пример 1
Создаем новый экземпляр объекта Word.Application с ранним связыванием и отображаем его на экране:

Sub Primer1()

Dim myWord As New Word.Application

‘———-

‘блок операторов для создания, открытия

‘и редактирования документов Word

‘———-

myWord.Visible = True

Set myWord = Nothing

End Sub

Запустите код примера 1 на выполнение. Вы увидите появившийся на панели задач ярлык приложения Word. Перейдите на него и закройте приложение вручную.

Пример 2
Создаем новый экземпляр объекта Word.Application с поздним связыванием, отображаем его на экране, останавливаем программу и наблюдаем закрытие приложения методом Quit:

Sub Primer2()

Dim myWord As Object

Set myWord = CreateObject(«Word.Application»)

‘———-

‘блок операторов для создания, открытия

‘и редактирования документов Word

‘———-

myWord.Visible = True

MsgBox «Остановка программы»

myWord.Quit

Set myWord = Nothing

End Sub

Запустите код примера 2 на выполнение. Закройте информационное окно MsgBox и смотрите, как исчезнет с панели задач ярлык приложения Word, созданного перед остановкой кода.

Пример 3
Пытаемся создать ссылку на открытый экземпляр приложения Word с помощью функции GetObject, а если открытого экземпляра нет, создаем новый с помощью функции CreateObject:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

Sub Primer3()

Dim myWord As Object

On Error Resume Next

Set myWord = GetObject(, «Word.Application»)

  If myWord Is Nothing Then

    Set myWord = CreateObject(«Word.Application»)

  End If

On Error GoTo Instr

‘———-

‘блок операторов для создания, открытия

‘и редактирования документов Word

‘———-

myWord.Visible = True

Set myWord = Nothing

Exit Sub

Instr:

  If Err.Description <> «» Then

    MsgBox «Произошла ошибка: « & Err.Description

  End If

  If Not myWord Is Nothing Then

    myWord.Quit

    Set myWord = Nothing

  End If

End Sub

Строка On Error Resume Next передаст управление следующему оператору, если открытого экземпляра программы Word не существует, и выполнение функции GetObject приведет к ошибке. В этом случае будет создан новый экземпляр Word.Application с помощью функции CreateObject.

В код добавлен обработчик ошибок On Error GoTo Instr, который поможет корректно завершить программу при возникновении ошибки. А также он позволит во время тестирования не наплодить большое количество ненужных экземпляров приложения Word. Проверяйте их наличие по Диспетчеру задач (Ctrl+Shift+Esc) и удаляйте лишние.

Строка Exit Sub завершит процедуру, если она прошла без ошибок. В случае возникновения ошибки, будет выполнен код после метки Instr:.

Permalink

main

Switch branches/tags

Could not load branches
Nothing to show

{{ refName }}
default

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Go to file

  • Go to file

  • Copy path


  • Copy permalink

Cannot retrieve contributors at this time

Application object (Word)
Remarks
Events
Methods
Properties
See also

274 lines (254 sloc)

13.8 KB


Raw


Blame

Open in GitHub Desktop

  • Open with Desktop

  • View raw


  • Copy raw contents

  • View blame

title keywords f1_keywords ms.prod api_name ms.assetid ms.date ms.localizationpriority description

Application object (Word)

vbawd10.chm2416

vbawd10.chm2416

word

Word.Application

d1cf6f8f-4e88-bf01-93b4-90a83f79cb44

06/08/2017

medium

Application object (Word)

Application object (Word)

Represents the Microsoft Word application. The Application object includes properties and methods that return top-level objects. For example, the ActiveDocument property returns a Document object.

Remarks

Use the Application property to return the Application object. The following example displays the user name for Word.

MsgBox Application.UserName

Many of the properties and methods that return the most common user-interface objects—such as the active document (ActiveDocument property)—can be used without the Application object qualifier. For example, instead of writing Application.ActiveDocument.PrintOut, you can write ActiveDocument.PrintOut. Properties and methods that can be used without the Application object qualifier are considered «global.» To view the global properties and methods in the Object Browser, click <globals> at the top of the list in the Classes box. (Also see the Global object.)

Remarks

To use Automation (formerly OLE Automation) to control Word from another application, use the Microsoft Visual Basic CreateObject or GetObject function to return a Word Application object. The following Microsoft Excel example starts Word (if it is not already running) and opens an existing document.

Set wrd = GetObject(, "Word.Application")
wrd.Visible = True
wrd.Documents.Open "C:My DocumentsTemp.doc"
Set wrd = Nothing

Events

  • DocumentBeforeClose
  • DocumentBeforePrint
  • DocumentBeforeSave
  • DocumentChange
  • DocumentOpen
  • DocumentSync
  • EPostageInsert
  • EPostageInsertEx
  • EPostagePropertyDialog
  • MailMergeAfterMerge
  • MailMergeAfterRecordMerge
  • MailMergeBeforeMerge
  • MailMergeBeforeRecordMerge
  • MailMergeDataSourceLoad
  • MailMergeDataSourceValidate
  • MailMergeDataSourceValidate2
  • MailMergeWizardSendToCustom
  • MailMergeWizardStateChange
  • NewDocument
  • ProtectedViewWindowActivate
  • ProtectedViewWindowBeforeClose
  • ProtectedViewWindowBeforeEdit
  • ProtectedViewWindowDeactivate
  • ProtectedViewWindowOpen
  • ProtectedViewWindowSize
  • Quit
  • WindowActivate
  • WindowBeforeDoubleClick
  • WindowBeforeRightClick
  • WindowDeactivate
  • WindowSelectionChange
  • WindowSize
  • XMLSelectionChange
  • XMLValidationError

Methods

  • Activate
  • AddAddress
  • AutomaticChange
  • BuildKeyCode
  • CentimetersToPoints
  • ChangeFileOpenDirectory
  • CheckGrammar
  • CheckSpelling
  • CleanString
  • CompareDocuments
  • DDEExecute
  • DDEInitiate
  • DDEPoke
  • DDERequest
  • DDETerminate
  • DDETerminateAll
  • DefaultWebOptions
  • GetAddress
  • GetDefaultTheme
  • GetSpellingSuggestions
  • GoBack
  • GoForward
  • Help
  • HelpTool
  • InchesToPoints
  • Keyboard
  • KeyboardBidi
  • KeyboardLatin
  • KeyString
  • LinesToPoints
  • ListCommands
  • LoadMasterList
  • LookupNameProperties
  • MergeDocuments
  • MillimetersToPoints
  • Move
  • NewWindow
  • NextLetter
  • OnTime
  • OrganizerCopy
  • OrganizerDelete
  • OrganizerRename
  • PicasToPoints
  • PixelsToPoints
  • PointsToCentimeters
  • PointsToInches
  • PointsToLines
  • PointsToMillimeters
  • PointsToPicas
  • PointsToPixels
  • PrintOut
  • ProductCode
  • PutFocusInMailHeader
  • Quit
  • Repeat
  • ResetIgnoreAll
  • Resize
  • Run
  • ScreenRefresh
  • SetDefaultTheme
  • ShowClipboard
  • ShowMe
  • SubstituteFont
  • ToggleKeyboard

Properties

  • ActiveDocument
  • ActiveEncryptionSession
  • ActivePrinter
  • ActiveProtectedViewWindow
  • ActiveWindow
  • AddIns
  • Application
  • ArbitraryXMLSupportAvailable
  • Assistance
  • AutoCaptions
  • AutoCorrect
  • AutoCorrectEmail
  • AutomationSecurity
  • BackgroundPrintingStatus
  • BackgroundSavingStatus
  • Bibliography
  • BrowseExtraFileTypes
  • Browser
  • Build
  • CapsLock
  • Caption
  • CaptionLabels
  • ChartDataPointTrack
  • CheckLanguage
  • COMAddIns
  • CommandBars
  • Creator
  • CustomDictionaries
  • CustomizationContext
  • DefaultLegalBlackline
  • DefaultSaveFormat
  • DefaultTableSeparator
  • Dialogs
  • DisplayAlerts
  • DisplayAutoCompleteTips
  • DisplayDocumentInformationPanel
  • DisplayRecentFiles
  • DisplayScreenTips
  • DisplayScrollBars
  • Documents
  • DontResetInsertionPointProperties
  • EmailOptions
  • EmailTemplate
  • EnableCancelKey
  • FeatureInstall
  • FileConverters
  • FileDialog
  • FileValidation
  • FindKey
  • FocusInMailHeader
  • FontNames
  • HangulHanjaDictionaries
  • Height
  • International
  • IsObjectValid
  • IsSandboxed
  • KeyBindings
  • KeysBoundTo
  • LandscapeFontNames
  • Language
  • Languages
  • LanguageSettings
  • Left
  • ListGalleries
  • MacroContainer
  • MailingLabel
  • MailMessage
  • MailSystem
  • MAPIAvailable
  • MathCoprocessorAvailable
  • MouseAvailable
  • Name
  • NewDocument
  • NormalTemplate
  • NumLock
  • OMathAutoCorrect
  • OpenAttachmentsInFullScreen
  • Options
  • Parent
  • Path
  • PathSeparator
  • PickerDialog
  • PortraitFontNames
  • PrintPreview
  • ProtectedViewWindows
  • RecentFiles
  • RestrictLinkedStyles
  • ScreenUpdating
  • Selection
  • SensitivityLabelPolicy
  • ShowAnimation
  • ShowStartupDialog
  • ShowStylePreviews
  • ShowVisualBasicEditor
  • SmartArtColors
  • SmartArtLayouts
  • SmartArtQuickStyles
  • SpecialMode
  • StartupPath
  • StatusBar
  • SynonymInfo
  • System
  • TaskPanes
  • Tasks
  • Templates
  • Top
  • UndoRecord
  • UsableHeight
  • UsableWidth
  • UserAddress
  • UserControl
  • UserInitials
  • UserName
  • VBE
  • Version
  • Visible
  • Width
  • Windows
  • WindowState
  • WordBasic
  • XMLNamespaces

See also

  • Word Object Model Reference

[!includeSupport and feedback]

Аннотация: Лекция посвящена описанию объектной модели 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.

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

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

В статье я не буду приводить примеров кода, так как по сути, нечего показывать, вы и сами с легкостью сможете написть небольшой скрипт на языке VBScript или JScript, или просто добавить макрос в редактор VBA, и просмотреть, как работают Word Application методы.

Объект Word Application — Методы

Activate() — Активизирует указанный объект.

BuildKeyCode(Arg1, Arg2, Arg3, Arg4) — Возвращает уникальный номер для указанной комбинации клавиш. Обязательнм является только первый параметр (Arg1). Все параметры содержат значение константы WdKey.

KeyString(KeyCode, KeyCode2) — Возвращает строку комбинаций клавиш для указанных ключей, которые содержат значения константы WdKey (например, Ctrl + Shift + A). Обязательным является только первый параметр.

ChangeFileOpenDirectory(Path) — Устанавливает каталог, к которому Word будет обращаться при работе с документами. По умолчанию таким каталогом является “Мои документы”.

CheckGrammar(Str) — Проверяет строку на предмет грамматических ошибок. Вернет True, если строка не содержит ошибок. Word Application методы.

CheckSpelling(Str) — Проверяет строку на предмет орфографических ошибок. Вернет True, если строка не содержит ошибок.

CleanString(Str) — Удаляет непечатаемые символы (коды символов 1 — 29) и специальные символы из заданной строки или заменяет их пробелами (символ кода 32). Возвращает результат в виде обработанной строки.

GoBack() — Перемещение курсора назад по последним трем позициям, в которых происходило редактирование (аналогично нажатию Shift + F5), Word Application методы

GoForward() — Перемещение курсора вперед по последним трем позициям, в которых происходило редактирование.

Help(HelpType) – Метод Word Application отображает установленную информацию справки.

HelpType – Определяет параметры показа, содержит значение константы WdHelpType:

  • WdHelp — 0 — Отображает диалоговое окно справки.
  • wdHelpAbout — 1 — Отображает диалоговое окно «О программе Microsoft Word».
  • wdHelpActiveWindow — 2 — Отображение справку, описывающую команду, связанную с активным просмотром или панелью.
  • wdHelpContents — 3 — Отображает диалоговое окно справки.
  • wdHelpExamplesAndDemos — 4 — Отображает «Примеры и демонстрации».
  • wdHelpIndex — 5 — Отображает диалоговое окно справки.
  • wdHelpKeyboard — 6 — Отображает справку по сочитаниям клавиш.
  • wdHelpPSSHelp — 7 — Отображает информацию о поддержке продукта.
  • wdHelpQuickPreview — 8 — Отображает быстрый просмотр.
  • wdHelpSearch — 9 — Отображает диалоговое окно справки.
  • wdHelpUsingHelp — 10 — Отображение список разделов справки, которые описывают, как использовать Справку.
  • wdHelpIchitaro — 11 — Открывает файл справки для пользователей Ichitaro.
  • wdHelpPE2 — 12 — Показывает справку по IBM Personal Editor 2.
  • wdHelpHWP — 13 — Открывает файл справки для пользователей AreA хангыль.

ListCommands(ListAllCommands) — Создает новый документ, а затем вставляет в него таблицу, содержащую сочетания клавиш и описания методов.

ListAllCommands – Параметр содержит логическое значение, true – все команды, false – только основные команды.

Move(Left, Top) – Позиция окна задач или активного документа. Параметры определяют горизонтальную и вертикальную позицию. Word Application методы

NewWindow() — Открывает новое окно для текущего документа. Возвращает объект Window.

ShowClipboard() — Отображает Буфер обмена.

SubstituteFont(UnavailableFont, SubstituteFont) — Устанавливает варианты отображения шрифта.

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

SubstituteFont — Название шрифта, доступного на вашем компьютере, который вы хотите заменить недоступным шрифтом.

Quit(SaveChanges, OriginalFormat, RouteDocument) — выход Microsoft Word и, возможно, сохраняет или маршруты открытые документы.

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

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

OriginalFormat – Определяет параметры сохранения. Значения константы WdOriginalFormat:

  • wdOriginalDocumentFormat — 1 — Оригинальный формат документа.
  • wdPromptUser — 2 – Пользователю будет предложено выбрать формат документа.
  • wdWordDocument — 0 – Формат документа Microsoft Word.

RouteDocument — True, чтобы направить документ на следующего получателя. Если документ не имеет маршрутизации, то аргумент игнорируется, Word Application методы.

ResetIgnoreAll() – снимает метку со всех фрагментов текста, которые помечены как «без проверки» в процессе проверки орфографии.

Resize(Width, Height) — Размеры окна приложения Word или указанного окна задач. Параметры определяют ширину и высоту окна.

Run(MacroName, varg1, … , varg30) – запуск указанного макроса Visual Basic. Обязательный только первый параметр.

MacroName — Имя макроса.

varg1 … varg30 – До 30 параметров, передаваемых макросу.

ScreenRefresh() – Метод включает обновление экрана в течении одной команды

KeyBoard(code) – Переключение раскладки клавиатуры, в качестве параметра (code) передается целое значение (например, 1033 – для русского языка, 1049 – для английского языка). Если вызвать метод без параметров, то будет возвращено текущее значение раскладки клавиатуры. Word Application метод.

OnTime(When, Name, Tolerance) – Устанавливает таймер для запуска макроса в указанное время.

When — Время, в которое нужно запустить макрос. Можно прописать строкой (“15:30”) или использовать функции работы со временем.

Name — Имя макроса.

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

Следующие Word Application методы отвечают за преобразование измерительных величин.

CentimetersToPoints(Centimeters) — Преобразует сантиметры в пункты (1 см = 28,35 пункта).

InchesToPoints(Inches) — Преобразует дюймы в пункты (1 дюйм = 72 пункта).

LinesToPoints(Lines) — Преобразует линии в пункты (1 линия = 12 пунктов).

MillimetersToPoints(Millimeters) — Преобразует миллиметры в пункты (1 мм = 2,85 пункта).

PicasToPoints(Picas) — Преобразует пики в пункты (1 пик = 12 пунктов).

PixelsToPoints(Pixels, fVertical) — Преобразует пиксели в пункты.

fVertical – Дополнительный параметр, True – по вертикали, False – по горизонтали.

PointsToCentimeters(Points) — Преобразует пункты в сантиметры.

PointsToInches(Points) — Преобразует пункты в дюймы.

PointsToLines(Points) — Преобразует пункты в линии.

PointsToMillimeters(Points) — Преобразует пункты в миллиметры.

PointsToPicas(Points) — Преобразует пункты в пики.

PointsToPixels(Points, fVertical) — Преобразует пункты в пиксели.

События для Word Application — VBA

Объект Word Application предоставляет в распоряжение довольно много событий, но… изначально к ним нет доступа в редакторе VBA. Второй проблемой является то, что события Word Application VBA нельзя использовать в сценариях Windows Script Host, ну я такой лазейки не нашел.

Что бы появилась возможность работать с событиями данного класса в редакторе VBA, надо выполнить следующие действия:

  • Создаем новый модуль класса, для этого в меню Insert выберите пункт Class Module.
  • В окне редактора для созданного модуля пишем код:
    Public WithEvents App As Word.Application
  • Меняем в окне свойств значение свойства Name на EventClassModule

Все, теперь в редакторе кода в окне объектов появится объект App, который и предоставляет возможность работать с событиями Word Application в VBA.

:(

Понравилась статья? Поделить с друзьями:
  • Vba проект в excel это
  • Vba программирование в excel видео
  • Vba проверить открыт ли файл word
  • Vba последняя запись в excel
  • Vba поиск слова во всем excel