Word visible что это

Программирование в Word

197

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

Кроме того, для каждого объекта будут перечислены самые важные свойства, методы и события с кратким их описанием. Эта часть добавлена по просьбе слушателей учебного курса по программированию в Office, поскольку многие из них не владеют английским настолько, чтобы свободно пользоваться документацией. Если вы читаете эту книгу подряд, то эти справочные части можно просто пропускать.

Рис. 10.1. Главные объекты Word

10.3.1. Как работать с объектом Application

Объект Application — это само приложение Microsoft Word. Все остальные объекты Word «вложены» в него. Создать этот объект — значит, запустить

Word на вашем компьютере. Как правило, это нам и необходимо (если мы создаем документ в формате Word из другого приложения, например из Access). Но не забудьте — если вы запускаете Word из другого приложения Office, то необходимо добавить в ваш проект ссылку на библиотеку Microsoft Word 11.0 Object Library.

Код запуска Word очень прост:

Dim oWord As New Word.Application

Однако, выполнив его из другого приложения, вы, скорее всего, даже не заметите, что у вас что-то произошло. Причины просты:

1.По умолчанию Word запускается в скрытом окне.

2.Если в нем не открыт ни один документ, он тут же закрывается (после того, как завершается создавшая его процедура).

Сделать Word видимым очень просто:

oWord.Visible = True

Однако может возникнуть вопрос: а нужно ли его делать видимым? Некоторые разработчики утверждают, что не нужно. Пусть Word работает в скрытом окне, создавая требуемый документ. Когда пользователю потребуется, он этот документ откроет. Как поступать в конкретном случае, решать вам, но я предпочитаю, чтобы Word все-таки был видимым: во-первых, сразу видны все проблемы при создании документа, а во-вторых, пользователям почемуто очень нравится, когда у них на глазах открывается Word и начинает печатать строки, которые в противном случае пришлось бы печатать им самим.

Если вы работаете с Word в скрытом окне, не забудьте после выполнения необходимых действий его закрыть (иначе он так и останется в оперативной памяти, видимый только через Task Manager). Для закрытия Word нужно вызвать его метод Quit().

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

Dim oWord As New Word.Application oWord.Visible = True oWord.Documents.Add

Если Word уже был открыт на компьютере, то можно получить на него ссылку, например, при помощи такого кода:

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

Однако на практике, кроме очень специальных случаев (активизация объектов OLE), такой подход по сравнению с открытием нового экземпляра Word

Программирование в Word

199

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

Если же ваш код VBA выполняется в Word (т. е. Word уже запущен), объект Application создавать не надо. В этой ситуации он будет автоматически доступен в любой момент (чтобы в этом убедиться, достаточно впечатать в окне редактора кода Application и добавить точку). Более того, если не указано, к какому объекту относится то или иное свойство или метод, компилятор VBA в Word автоматически считает, что это свойство или метод принадлежит объекту Application. Поэтому следующие два фрагмента кода функционально одинаковые:

Application.Selection.TypeText «Мой текст»

и

Selection.TypeText «Мой текст»

Еще один важный момент, который связан с объектом Application в Word. Для него предусмотрено большое количество удобных в использовании событий (открытие документа, выход из Word, щелчок правой кнопкой мыши, изменение документа, печать документа, сохранение документа и т. п.) Однако по умолчанию все эти события не видны. Чтобы они появились, необходимо в разделе Declarations кода формы (а не модуля!) объявить объект Application с ключевым словом WithEvents, например так:

Public WithEvents App As Word.Application

В списке объектов у вас появится новый объект App (т. е. Application), для которого можно выбрать события и добавлять код в событийные процедуры точно так же, как мы это делали для формы и элементов управления.

10.3.2. Свойства, методы и события объекта Application

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

ActiveDocument — возвращает объект активного документа в данном экземпляре Word. Это свойство используется очень активно, обычно без упоминания объекта Application, например:

ActiveDocument.Save

Свойство доступно только для чтения, поэтому чтобы сделать какойнибудь документ активным, придется вызывать для его объекта метод

Activate().

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

AutomationSecurity — определяет уровень безопасности при программном открытии файлов. По умолчанию установлено значение msoAutomationSecurityLow — открывать с включенными макросами. Мож-

но также использовать значения msoAutomationSecurityForceDisable (от-

ключить макросы) и msoAutomationSecurityByUI (то, что настроено на графическом интерфейсе).

BackgroundPrintingStatus — определяет, сколько заданий Word стоит в очереди на печать.

Browser — свойство, которое возвращает объект Browser (малозаметный набор из трех кнопок, который прячется под вертикальной полосой прокрутки). С программной точки зрения интересно его свойство Target, которое может принимать одно из 12 значений (комментарий, сноска, таблица, рисунок, заголовок, страница и т. п.). Затем при помощи методов Next() и Previous() для этого объекта мы можем перемещаться между этими элементами.

Build — возвращает версию и номер сборки Word. Очень полезно для проверки на совместимость, если ваше приложение работает только под определенными версиями Word.

CapsLock — позволяет проверить, включен ли режим CapsLock на клавиатуре. Изменить этот режим при помощи данного свойства нельзя (только для чтения), для этого есть другие средства (связанные с использованием Windows API). Аналогично работает свойство NumLock.

Caption — позволяет заменить текст «Microsoft Word» в заголовке окна на другой, например «Мое приложение».

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

COMAdIns — позволяет получить ссылку на коллекцию загруженных COM Ad ins — встраиваемых в Word приложений, построенных по технологии COM. Очень удобно использовать перед обращением к данному встраиваемому приложению.

Программирование в Word

201

CustomizationContext — свойство, которое позволяет указать шаблон или документ, на который будут распространяться внесенные вами изменения в меню, панели инструментов и клавиатурные комбинации. Например, код:

CustomizationContext = NormalTemplate

говорит о том, что все изменения, которые вы будете вносить, начиная с этого момента, будут сохраняться в шаблоне Normal.dot (и, таким образом, будут применяться ко всем документам).

Dialogs — возвращает коллекцию Dialogs, представляющую из себя все возможные диалоговые окна Word. При помощи этой «ветви» объектной модели Word вы можете открыть любое из сотен диалоговых окон Word и определить действия, которые будут предприняты при выборе пользователем тех или иных параметров в данном диалоговом окне. К сожалению, эта «ветвь» очень плохо документирована, и при использовании объектов диалоговых окон приходится заниматься самостоятельными исследованиями (при помощи макрорекордера и окна Locals), чтобы определить нужные свойства и их значения. По моему опыту, обычно бывает проще создать свою форму VBA, которая будет выполнять необходимые действия, чем заниматься такой исследовательской работой. Пример использования диалогового окна открытия файла может выглядеть так:

Dim oDlg As Dialog

Set oDlg = Application.Dialogs(wdDialogFileOpen) If oDlg.Display = -1 Then

MsgBox «Вы выбрали файл: » & _ Application.Options.DefaultFilePath(wdCurrentFolderPath) & _ «» & oDlg.Name

End If

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

DefaultSaveFormat — определяет формат сохранения файлов Word по умолчанию (тот, который будет предлагаться пользователь в диалоговом окне Save As). Можно настроить на сохранение в формате обычного тек-

ста TXT, текста Unicode, RTF и т. п.

DisplayAlerts — очень важное свойство. Оно позволяет подавить вывод ошибок и диалоговых окон при работе макросов и приложений VBA. Во многих ситуациях без него не обойтись. Особенно часто прибегать к этому свойству требуется, когда в ходе работы программы необходимо чтонибудь удалить или закрыть без сохранения.

DisplayAutoCompleteTips — включает или отключает подсказки для автозавершения текста. Чаще всего необходимо отключить.

Documents — самое важное свойство. Возвращает коллекцию документов. Подробнее про эту коллекцию и работу с документами читайте в

разд. 10.4.

EmailOptions — возвращает очень сложный и насыщенный свойствами объект EmailOptions, который используется для настройки Word как редактора почтовых сообщений Outlook.

EnableCancelKey — это свойство определяет, сможет ли пользователь прервать выполнение любого макроса при нажатии клавиш <Ctrl>+<Break>. Если установить для этого свойства значение wdCancelDisabled, то это приведет к тому, что макрос, вошедший в бесконечный цикл, можно будет закрыть только вместе с Word — через Task Manager.

FeatureInstall — еще одно свойство, которое позволяет не раздражать пользователя попытками Office доустановить еще не установленные компоненты. Для этого нужно установить это свойство в значение

msoFeatureInstallNone.

FileDialog — возвращает объект FileDialog, т. е. окно выбора файла, каталога, открытия файла или сохранения. Для открытия этого окна необходимо воспользоваться методом Show() этого объекта.

FileSearch — возвращает объект FileSearch, который может использоваться для поиска файлов по определенным параметрам.

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

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

KeyBindings — очень удобное во многих ситуациях свойство. Оно возвращает коллекцию KeyBindings — привязок клавиатурных комбинаций. Проще говоря, при помощи этого объекта и его подобъектов вы можете назначить любую команду Word или любой макрос любому сочетанию клавиш (в том числе и тем, которые уже заняты служебными командами, например <Alt>+<F4>). Общая последовательность действий при этом выглядит так:

Программирование в Word

203

определяем свойство CustomizationContext объекта Application, т. е.

где будут сохраняться наши изменения: в шаблоне Normal.dot, в текущем документе или в шаблоне, прикрепленном к текущему документу;

при помощи метода Application.BuildKeyCode() определяем цифровой код для нашей клавиатурной комбинации;

при помощи метода KeyBindings.Add() добавляем новое назначение, при этом определяем все необходимые параметры.

Например, чтобы по нажатию клавиш <Alt>+<D> у нас запускался макрос DataLoad() во всех документах, можно выполнить следующий код:

CustomizationContext = NormalTemplate Application.KeyBindings.Add wdKeyCategoryMacro, _

«Normal.NewMacros.DataLoad», BuildKeyCode(wdKeyAlt, wdKeyD)

Language — еще одно свойство, которое позволяет определить, установлена ли на компьютере пользователя локализованная версия Word (точнее, это свойство определяет язык пользовательского интерфейса). Для русского языка будет возвращаться значение 1049, для английского — 1033. Более подробную информацию (о языке помощи, языке программы установки и т. п.) можно получить при помощи свойства LanguageSettings.

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

NewDocument — одна из возможностей создать новый документ Word. Возвращает объект NewDocument. Для создания нового документа используется

метод Application.NewDocument.Add().

NormalTemplate — это свойство позволяет получить ссылку на объект Template, представляющий Normal.dot, для внесения в него изменений.

Option — возвращает объект Option с огромным количеством свойств. Через этот объект программным способом можно настроить значения на всех вкладках окна Параметры (меню Сервис | Параметры).

Path — возвращает путь к программным файлам Word на диске.

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

ScreenUpdating — свойство, которое позволяет запретить перерисовку экрана (если установить его значение в False). Обычно используется для ускорения работы процедур, которые выводят что-то на экран.

Selection — еще одно важнейшее свойство. Возвращает объект Selection — то место, в котором находится указатель вставки. Подробнее о нем — в разд. 10.5.

ShowStartupDialog — определяет, показывать или нет Task Panel (панель задач в правой части документа) при запуске Word. Чаще всего используется для отключения показа. Есть еще несколько свойств с префиксом Show…, значения которых очевидны.

SpecialMode — позволяет проверить, не находится ли Word в специальном режиме копирования и вставки (для перехода в этот режим нужно выделить текст и нажать <F2> или <Shift>+<F2>, а потом переместить курсор и нажать <Enter>).

StartUpPath — предоставляет возможность просмотреть/определить путь к каталогу автозапуска. Те шаблоны и встраиваемые приложения, которые находятся в этом каталоге, Word при запуске открывает автоматически. По умолчанию каталог автозапуска находится в профиле пользователя. Путь к нему выглядит как application datamicrosoftwordstartup.

StatusBar — еще одно очень полезное свойство. Позволяет вывести текст в Status Bar (строка состояния), т. е. в строке в нижней части окна приложения, где выводится информация о страницах, столбцах, языке, режимах работы и т. п.

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

Microsoft System Information.

Tasks — возвращает одноименную коллекцию Tasks с объектами Task, представляющими все работающие в системе процессы. При помощи этих объектов можно программным способом найти работающее в системе приложение и что-нибудь с ним сделать (сделать видимым или невидимым, активизировать, закрыть, передать в его окно сообщение Windows, как при работе с Windows API и т. п.). Опытные разработчики активно используют этот набор объектов для работы с внешними приложениями. Запускать внешние приложения лучше всего при помощи специального объекта Shell, о котором будет рассказано в разд. 10.6.10.

UserControl — очень важное свойство (оно есть и в Excel). Это свойство позволяет определить, как именно был запущен Word — пользователем вручную или программным образом. На основе этого можно, например, сделать вывод, нужно ли его программным образом закрывать.

Программирование в Word

205

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

VBE — это свойство возвращает недокументированный, но очень интересный объект VBE, представляющий редактор Visual Basic. Обычно используется для программного внесения изменений в проекты VBA, например, добавление ссылок.

Version — свойство возвращает версию Word (менее подробную, чем свойство Build). Для Word 2003 значение этого свойства равно 11.0.

Visible — позволяет спрятать окно Microsoft Word очень качественно — Word исчезает и c рабочего стола, и из панели задач.

Windows — возвращает информацию об одноименной коллекции Windows, содержащей объекты Window. Эти объекты представляют окна документов

Word.

WindowsState — позволяет свернуть, развернуть или восстановить окно

Word.

Самые важные методы объекта Application приведены далее.

Activate() — просто активизирует окно Word с текущим документом. Обычно нужно активизировать определенный документ, поэтому этот метод используется для объекта Document.

BuildKeyCode() — позволяет узнать уникальный номер для клавиатурной комбинации в Word. Пример использования этого метода был приведен ранее при рассмотрении свойства Application.KeyBindings.

ChangeFileOpenDirectory() — этот метод позволяет изменить каталог, который по умолчанию открывает Word при работе с документами (по умолчанию задан, конечно, каталог Мои документы);

CheckGrammar() и CheckSpelling() — позволяют проверить грамматику и орфографию для передаваемых символьных значений. Чаще всего используются аналогичные методы для объектов Document и Range.

CleanString() — очень полезный метод. Позволяет «чистить» передаваемое символьное значение (полученное, например, от объектов Selection или Range) от специальных символов Word и превращает их в обычный текст, как будто он был набран в блокноте.

DefaultWebOptions() — возвращает одноименный объект, при помощи которого можно определить множество свойств, используемых при сохранении документа Word в формате HTML (кодировка, работа с изображениями, CSS, с какими браузерами обеспечивать совместимость и т. п.).

GoBack() — этот метод обеспечивает переход на последнее место редактирования в документе. Word сохраняет с документом три последние точки редактирования, так что открыть последний документ в Word и перейти на точку, где вы остановились, можно очень просто:

RecentFiles(1).Open

Application.GoBack

GoForward() — обеспечивает переход вперед по точкам сохранения.

KeyBoard() — очень полезный метод. Позволяет программным способом переключать раскладку клавиатуры в Word, уберегая таким образом пользователей от ошибок. Переключение на русский язык выглядит так:

Application.Keyboard 1049

а на английский:

Application.Keyboard 1033

Если этому методу ничего не передавать, он вернет текущую раскладку клавиатуры.

KeyString() — метод, обратный BuildKeyCode(). Если BuildKeyCode() воз-

вращает уникальный идентификатор клавиатурной комбинации, то этот метод возвращает клавиатурную комбинацию для данного уникального идентификатора.

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

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

OrganizerCopy() — еще один полезный метод. Позволяет скопировать макрос, панель инструментов, запись автотекста или стиль из одного документа в другой. Для удаления и переименования этих элементов преду-

смотрены методы OrganizerDelete() и OrganizerRename().

PrintOut() — метод, который принимает огромное количество параметров (все необязательные) и позволяет вывести на печать весь документ или его часть. Может использоваться для объектов Application, Document и Window.

Quit() — метод, который используется, видимо, чаще всех. Позволяет закрыть Word с сохранением или без сохранения документов.

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

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

В этой статье мы рассмотрим свойства объекта Word Application, их довольно много, и все можно разделить на две части:

  • Свойства, которые позволят получить или задать параметры приложения Word
  • Свойства, которые позволяют получить доступ к остальным объектам и коллекциям

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

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

Тут я рассмотрю только свойства первой группы, остальные я описал в этой статье. Примеров как таких я тоже не рассматривал (ни в VBA ни в Windows Script Host), практика начнется после того, как будет изучена еще коллекция Documents и объект Document, так как без них, просто нет смысла двигаться дальше.

Свойства объекта Application – первая категория

ActivePrinter — Возвращает или задает имя активного принтера. Например, у меня свойство выводит значение «doPDF v7 on DOP7:». Пример задания активного принтера на заданном порте:

ActivePrinter = «HP LaserJet 4 local on LPT1:»

AutomationSecurity – Свойство позволяет получить или задать уровень безопасности при открытии документа. Значения константы MsoAutomationSecurity:

  • msoAutomationSecurityLow – 1 – включить макросы
  • msoAutomationSecurityByUI -2  – значение, настроенное по умолчанию в самом документе
  • msoAutomationSecurityForceDisable — 3 – отключить макросы

BackgroundPrintingStatus — Возвращает количество заданий в очереди на печать в фоновом режиме, объект Application

BackgroundSavingStatus — Возвращает количество файлов в очереди на сохранение в фоновом режиме.

BrowseExtraFileTypes — Установите это свойство в «text/html», чтобы гиперссылки открывались в Microsoft Word (вместо интернет-браузера по умолчанию).

Build — Возвращает версию и номер сборки приложения Word.

CapsLock, NumLock – свойства позволяют определить, включены ли (True) заданные режимы или нет (False).

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

CheckLanguage – Значение true, если Microsoft Word автоматически определяет язык, который вы используете при вводе текста. Чтение и запись.

DefaultSaveFormat — Возвращает или устанавливает формат сохранения документов по умолчанию, который будет отображаться в поле Тип файла в диалоговом окне Сохранить как, объект Application. Значения:

  • Word документ — «»
  • Шаблон документа — «Dot»
  • Простой текстовый файл — » 8Text»
  • Только текст с разрывами строк — » 8CRText»
  • MS-DOS текст — «Text»
  • MS-DOS текст с разрывами строк — «CRText»
  • Rich Text Format — «Rtf»
  • Юникод — «Unicode»

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

DisplayAlerts – Свойство возвращает или устанавливает способ обработки ошибок и диалоговых окон во время работы макросов или приложений VBA. Значения константы WdAlertLevel:

  • wdAlertsAll – -1 — отображать все предупреждения и диалоговые окна
  • wdAlertsMessageBox – -2 — отображать только диалоговые окна
  • wdAlertsnone – 0 — отключить отображение полностью

DisplayAutoCompleteTips – Включение (true) или отключение (false) подсказки для авто-завершения текста. Объект Application

DisplayDocumentInformationPanel – Включить (True) или отключить (False) панель свойств документа.

DisplayRecentFiles – Значение True, если имена последних использованных файлов отображаются в меню Файл. Чтение и запись.

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

DisplayScrollBars – Значение True, если Word отображает полосу прокрутки по меньшей мере в одном окне документа. False — если полосы прокрутки скрыты в любом окне. Чтение и запись.

EmailTemplate — Возвращает или задает текстовую строку, представляющую шаблон документа для использования при отправке электронного сообщения. Объект Application

EnableCancelKey — Возвращает или задает способ завершения работы макроса. Значения константы WdEnableCancelKey:

  • wdCancelDisabled — 0 — Комбинация Ctrl + Break не прерывает работу макроса.
  • wdCancelInterrupt — 1 – Макрос прерывается комбинацией Ctrl + Break.

FeatureInstall — Возвращает или задает способ обработки при вызове методов и свойств компонентов, которые возможно еще не установлены. Значения константы MsoFeatureInstall:

  • msoFeatureInstallNone — 0 — Создает общую ошибку автоматизации во время выполнения, когда вызывается удаленный компонент.
  • msoFeatureInstallOnDemand — 1 – Отправляется запрос пользователю установить новые компоненты.
  • msoFeatureInstallOnDemandWithUI — 2 — Отображает индикатор выполнения во время установки; не предложит пользователю установить новые компоненты.

FileValidation — Возвращает или задает режим проверки файлов перед их открытием. Значение константы MsoFileValidationMode:

  • msoFileValidationDefault — 0 — Проверять файл (по умолчанию).
  • msoFileValidationSkip — 1 — Не проверять файл.

FocusInMailHeader – Значение true, если курсор находится в поле электронного письма. Только чтение.

Height и Width – Свойства объекта Application возвращает или задают высоту (ширину) окна активного документа.

International(index) – Получение информации о времени, настройках даты, версии Windows и так далее. Параметр index содержит значения константы WdInternationalIndex:

  • wdListSeparator — 17 – Возвращает разделители списков.
  • wdDecimalSeparator — 18 — Возвращает десятичный разделитель (например, “.”).
  • wdThousandsSeparator — 19 — Возвращает разделитель тысяч.
  • wdCurrencyCode — 20 — Возвращает символ валюты (например, “$”).
  • wd24HourClock — 21 — Возвращает True, если вы используете 24 — часовое время, False, если вы используете 12 — часовое время.
  • wdInternationalAM — 22 — Возвращает строку, используемую для обозначения утреннего времени.
  • wdInternationalPM — 23 — Возвращает строку, используемую для обозначения послеобеденного и вечернего времени.
  • wdTimeSeparator — 24 — Возвращает разделитель времени (например, “:”).
  • wdDateSeparator — 25 — Возвращает разделитель даты.
  • wdProductLanguageID — 26 — Возвращает языковую версию Word.

IsObjectValid(Object) — True, если указанная переменная (Object), которая ссылается на объект, действует. Только чтение.

Language – Возвращает язык выбранный для пользовательского интерфейса,  значения константы MsoLanguageID.

Left и  Top – Свойства объекта Application возвращают или устанавливают горизонтальное (вертикальное) положение активного документа.

MailSystem – Возвращает тип почтовой системы, установленной на компьютере. Значение константы WdMailSystem:

  • wdNoMailSystem — 0 — Нет почтовой системы.
  • wdMAPI — 1 — Стандартный интерфейс программирования приложений передачи сообщений (MAPI).
  • wdPowerTalk — 2 — PowerTalk почтовая система.
  • wdMAPIandPowerTalk — 3 – Установлены MAPI и PowerTalk.

MAPIAvailable — True, если установлен MAPI. Только чтение.

MathCoprocessorAvailable — True, если установлен математический сопроцессор и доступен для Microsoft Word. Только чтение.

MouseAvailable — True, если доступна мышь.Только чтение.

Name — Возвращает имя приложения.

Path — Возвращает путь к программный файлам Word.

PathSeparator — Возвращает символ, используемый для разделения имен папок (обратная косая черта  “”). Объект Application

PrintPreview – Включить (True) или отключить (False) предварительный просмотр документа.

ScreenUpdating — True, если обновление экрана включено. Чтение и запись.

ShowStartupDialog — True, чтобы отобразить область задач при запуске Microsoft Word. Чтение и запись.

ShowVisualBasicEditor — True, если отображается окно редактор Visual Basic. Чтение и запись.

SpecialMode — True, если Microsoft Word находится в специальном режиме (например, режим CopyText или режиме MoveText). Только чтение.

StartupPath — Возвращает или устанавливает полный путь к папке автозагрузки.

UsableHeight и UsableWidth – Свойства объекта Application вернут максимальную высоту (ширину) окна в пунктах, которую можно установить.

UserAddress — Возвращает или устанавливает почтовый адрес пользователя.

UserControl — True, если документ или приложение было создано или открыто пользователем. Только чтение

UserInitials — Возвращает или устанавливает инициалы пользователя, которые Microsoft Word использует для построения знака комментария. Чтение и запись.

UserName — Возвращает или устанавливает имя пользователя, которое используется на конвертах и в свойстве «Автор документа».

Version — Возвращает версию Microsoft Word. Только чтение

Visible — True, если приложение Word видимо. Чтение и запись. Объект Application

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

  • wdWindowStateMaximize — 1 — Максимальное.
  • wdWindowStateMinimize — 2 – Сведено к минимуму.
  • wdWindowStateNormal — 0 — Нормальное состояние.

9.5.13. StatusBar — вывод информации в строку состояния

09-07-Status Bar.docm — пример к п. 6.3.2.13

Модифицировав свойство StatusBar вы можете записать любой текст в строку состояния Microsoft Word. Туда можно выводить сообщения о ходе выполнения какой-нибудь длительной операции и т.д. В листинге 9.31. приведен пример использования этого свойства.

Application.StatusBar = "Пожалуйста, подождите..."


Листинг
9.31.
Вывод фразы в StatusBar

9.5.14. System — системная информация

09-08-System.docm — пример к п. 9.5.12.

Это свойство возвращает объект System, который дает доступ к различной системной информации (о разрешении экрана, типе процессора, объеме свободного места на жестких дисках и т.д.)

Например, свойство FreeDiskSpace объекта System позволяет узнать размер свободного пространства на текущем жестком диске (листинг 9.32.)

Dim var_DiskSize As Variant
var_DiskSize = Application.System.FreeDiskSpace
var_DiskSize = Int(var_DiskSize / (1024 ^ 2))
If var_DiskSize >= 2047 Then _
MsgBox ("На текущем HDD более 2 Гб свободного места") _
Else MsgBox ("Размер свободного места на текущем диске " + _
"равен " + Str(var_DiskSize) + " Мб")


Листинг
9.32.
Определение свободного дискового пространства

В этом примере мы учитываем тот факт, что при определении свободного места свойство FreeDiskSpace, во-первых, возвращает значение в байтах, а во-вторых — максимальное значение, возвращаемое функцией, не превышает 2,147,483,647 байт, то есть 2048 Мб или 2 Гб. Для получения значения в мегабайтах мы делим полученное значение на 1024 во второй степени.

9.5.15. Tasks — работа с запущенными приложениями

09-09-Tasks.docm — пример к п. 9.5.15.

Это свойство возвращает коллекцию Tasks, которая дает доступ ко всем приложениям, запущенным в системе. Давайте рассмотрим пример работы с приложением Notepad.exe (Блокнот), которое представлено в системе процессом Блокнот. Напишем программу (листинг 9.33.), которая проверяет, запущен ли Блокнот, если запущен — выводит сообщение «Блокнот уже запущен», активирует его окно. Если Блокнот не запущен — запускает его, сообщив об этом.

If Application.Tasks.Exists("Блокнот") = True Then
    MsgBox ("Блокнот уже запущен")
    With Tasks("Блокнот")
        .Activate
        .WindowState = wdWindowStateMaximize
    End With
Else
    MsgBox "Запускаем Блокнот..."
    Shell ("Notepad.exe")
        With Tasks("Блокнот")
        .Activate
        .WindowState = wdWindowStateMaximize
    End With
End If


Листинг
9.33.
Работа с внешним приложением из MS Word

9.5.16. Visible — скрытие окна MS Word

Visible позволяет скрыть окно Microsoft Word. Если присвоить ему значение False — окно приложения будет скрыто, причем даже с панели задач Windows. Если значение True — окно снова отобразится.

9.5.17. Windows — работа с окнами

09-10-Windows.docm — пример к п. 9.5.17.

Это свойство возвращает коллекцию Windows, которая содержит окна всех открытых документов. Она позволяет управлять окнами. Например, код листинга 9.34. располагает окна на экране без перекрытия:

Application.Windows.Arrange (wdTiled)


Листинг
9.34.
Располагаем окна на экране без перекрытия

Посмотрите на листинг 9.35. Он иллюстрирует применение коллекции Windows:

For i = 1 To Application.Windows.Count
   With Application.Windows.Item(i)
    .Activate
    .WindowState = wdWindowStateNormal
    .Width = 400
    .Height = 400
    .Left = i * 10 - 10
    .Top = i * 10 - 10
   End With
Next i


Листинг
9.35.
Работа с окнами документов

Здесь мы перебираем по очереди все окна (свойство Count коллекции Windows ), активируем каждое из них ( Activate ), после чего устанавливаем параметр WindowsState (Состояние окна) в значение wdWindowsStateNormal (иначе, если окно развернуто на весь экран, мы не сможем изменить его размеры и получим сообщение об ошибке). Далее, устанавливаем ширину и высоту окна по 400 пикселей и размещаем окна каскадом от левого верхнего угла экрана (координата 0,0), располагая каждое следующее окно правее и ниже предыдущего на 10 пикселей.

9.6. События объекта Application

09-11-События.docm — пример к п. 9.6.

Как и любые другие объекты, Application может реагировать на различные события. Чтобы события объекта отображались в редакторе, нужно воспользоваться особой методикой. Во-первых — вставьте в ваш VBA-проект модуль класса командой Insert — Class Module (Вставить — Модуль класса) или любым другим удобным для вас способом. Теперь разместить в модуле такое объявление (листинг 9.36.).

Public WithEvents obj_Application As Word.Application


Листинг
9.36.
Объявляем новую объектную переменную

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

  • DocumentBeforeClose (Перед закрытием документа) — событие генерируется непосредственно перед закрытием одного из открытых документов. В этот обработчик можно вставить, например, команды проверки документа, команды сохранения копий документа и т.д.
  • DocumentBeforePrint (Перед печатью документа)
  • DocumentBeforeSave (Перед сохранением документа)
  • DocumentChange (Изменение документа) — это событие гененируется при создании нового документа, открытии существующего или тогда, когда любой документ становится активным.
  • DocumentOpen (Открытие документа)
  • NewDocument (Создание нового документа)
  • Quit (Выход из Microsoft Word)
  • WindowActivate (Активация окна документа)
  • WindowBeforeDoubleClick (Перед двойным щелчком) — происходит после двойного щелчка в области редактирования документа до выполнения стандартной процедуры обработчика двойного щелчка.
  • WindowBeforeRightClick (Перед щелчком правой кнопкой мыши)
  • WindowDeactivate (Деактивация окна)
  • WindowSelectionChange (Изменение выделенной области)
  • WindowSize (Размер окна) — происходит при изменении размеров или перетаскивании окна.

Если вы создадите модуль класса, объявите в нем объект приложения, создадите обработчики, они не будут работать без специальной подготовки. Дело в том, что прежде чем обработчики для Word.Application заработают, нужно связать переменную, представляющую приложение, с приложением. Это можно сделать из какого-нибудь другого модуля. Например, чуть ниже мы познакомимся с автоматически выполняемыми макросами — их можно использовать для подобных целей.

Создадим новый документ Microsoft Word, в редакторе VBA добавим к нему новый модуль класса, назовем его AppEventsModule. Разместим в нем сначала объявление объектной переменной так, как указано выше, а потом создадим пару обработчиков, например, для событий NewDocument и WindowSelectionChange, в которые добавим код вызова окна сообщения с соответствующими сообщениями, указывающими на выполнение данного обработчика. Ниже, на рис. 9.2. вы можете видеть окно проекта после создания модуля и добавления в него соответствующего кода.

Теперь перейдем из редактора в документ, переключимся в режим конструктора, создадим в документе новую кнопку, назовем ее cmd_initObject подпишем как Инициализация, и напишем для нее такой код (листинг 9.37.):

Dim obj_Module As New AppEventsModule
Private Sub cmd_InitObject_Click()
    Set obj_Module.obj_Application = Word.Application
End Sub


Листинг
9.37.
Связываем переменную с приложением

Мы не случайно привели здесь полный код обработчика — дело в том, что переменная obj_Module должна быть объявлена не внутри обработчика, а в разделе объявлений модуля. Давайте подробнее рассмотрим этот код.

Выше мы не работали с модулями класса, поэтому сейчас нас ждут некоторые неожиданности. Первая неожиданность возникает при объявлении переменной obj_Module. Как вы помните, при создании модуля класса мы задали его имя — AppEventsModule. Это имя может быть произвольным, главное — оно должно соответствовать общим правилам именования объектов и переменных VBA. В модуле мы объявили переменную obj_Application, которая должна представлять приложение. Итак, объявляя переменную obj_Module мы задаем для нее тип данных AppEventsModule — то есть создаем на основе класса AppEventsModule новый объект. В обработчике события нажатия кнопки cmd_InitObject мы связываем переменную объекта obj_Application (если следовать объектно-ориентированной терминологии, правильнее будет назвать ее свойством) с приложением Microsoft Word.

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

9.7. Выводы

В этой лекции мы обсудили методы, свойства и события объекта Application приложения Microsoft Word. На очереди — другие объекты. В частности, в следующей лекции мы поговорим о работе с документами.

Объект WshShell

Методы

AppActivate

Синтаксис:

AppActivate(<Title>)

Назначение:

Активизирует указанное окно какого-либо приложения. Возвращает True в случае успеха и False в случае неудачи.

Параметры:

<Title> — заголовок окна приложения или идентификатор процесса.

Описание:

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

Пример:

Set WshShell = CreateObject(«WScript.Shell»)

Set WshExec = WshShell.Exec(«notepad»)

WScript.Sleep 2000

Res = WshShell.AppActivate(WshExec.ProcessID)

If Res Then WshShell.SendKeys(«0123456789»)

© 2004 http://small.h12.ru

Использование Word в приложениях на Visual Basic 6 открывает широчайшие возможности для создания профессионально оформленных документов (например отчетов). Это часто необходимо при работе в фирме или на предприятии для обеспечения документооборота. Основным преимуществом использования Wordа в этом случае является то, что практически на всех компьютерах, используемых в фирмах и на предприятиях установлены Windows и пакет Microsoft Office. Поэтому подготовленные документы Word не требуют каких-либо дополнительных усилий для их просмотра, печати и редактирования. Единственное что нужно помнить, это то что работа через автоматизацию OLE (связывание и внедрение объектов) на деле оказывается довольно медленной технологией, хотя и очень полезной.

Чтобы использовать объекты Word в Visual Basic , необходимо инсталлировать сам Word. После этого вы получаете в своё распоряжение библиотеку Microsoft Word Object Library, которую нужно подключить к текущему проекту через диалоговое окно «Разработать»>>»Ссылки» (References) и указать Microsoft Word 9.0 Object Library (для Word 2000).

Два самых важных объекта Word это Word.Application и Word.Document. Они обеспечивают доступ к экземпляру приложения и документам Word.

Поэтому в раздел Generals «Общее» формы введите следующий код для объявления объектных переменных приложения Word и документа Word.

Dim WordApp As Word.Application '  экземпляр приложения
Dim DocWord As Word.Document'  экземпляр документа

Чтобы создать новый экземпляр Word, введите такой код кнопки;

Private Sub Комманда1_Click()

'создаём  новый экземпляр Word-a
Set WordApp = New Word.Application

'определяем видимость Word-a по True - видимый,
'по False - не видимый (работает только ядро)
WordApp.Visible = True

'создаём новый документ в Word-e
Set DocWord = WordApp.Documents.Add

'// если нужно открыть имеющийся документ, то пишем такой код
'Set DocWord = WordApp.Documents.Open("C:DDD.doc")

'активируем его
DocWord.Activate

End Sub

Для форматирования печатной области документа используйте данный код:

(вообще-то Word использует для всех размеров своих элементов пункты, поэтому для использования других единиц измерения, необходимо использовать встроенные функции форматирования.)

Например:

  • CentimetersToPoints(Х.ХХ) — переводит сантиметры в пункты.
  • MillimetersToPoints(X.XX) — переводит миллиметры в пункты
Private Sub Комманда2_Click()

'отступ слева "2,0 сантиметра"
DocWord.Application.Selection.PageSetup.LeftMargin = CentimetersToPoints(2)

'отступ справа "1,5 сантиметра"
DocWord.Application.Selection.PageSetup.RightMargin = CentimetersToPoints(1.5)

'отступ сверху "3,5 сантиметра"
DocWord.Application.Selection.PageSetup.TopMargin = CentimetersToPoints(3.5)

'отступ снизу "4,45 сантиметра"
DocWord.Application.Selection.PageSetup.BottomMargin = CentimetersToPoints(4.45)

End Sub

Небольшое отступление.

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

Например код находящейся выше можно переписать так:

With DocWord.Application.Selection.PageSetup
.LeftMargin = CentimetersToPoints(2)
.RightMargin = CentimetersToPoints(1.5)
.TopMargin = CentimetersToPoints(3.5)
.BottomMargin = CentimetersToPoints(4.45)
End With

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

With DocWord.Application.Selection.PageSetup
.PageWidth = CentimetersToPoints(20)    'ширина листа (20 см)
.PageHeight = CentimetersToPoints(25)   'высота листа (25 см)
End With

Данный код меняет ориентацию страницы (практически меняет местами значения ширины и высоты листа):

 
DocWord.Application.Selection.PageSetup.Orientation = wdOrientLandscape
  • wdOrientLandscape — альбомная ориентация ( число 1)
  • wdOrientPortrait — книжная ориентация ( число 0)

Для сохранения документа под новым именем и в определенное место
используйте данный код код:

'сохраняем документ как
DocWord.SaveAs "c:DDD.doc"

После такого сохранения вы можете про ходу работы с документом сохранять его.

'сохраняем документ
DocWord.Save

Или проверить, были ли сохранены внесенные изменения свойством Saved и если изменения не были сохранены — сохранить их;

If DocWord.Saved=False Then DocWord.Save

Завершив работу с документом, вы можете закрыть сам документ методом Close и сам Word методом Quit.

'закрываем документ (без запроса на сохранение)
DocWord.Close True

'закрываем Word (без запроса на сохранение)
WordApp.Quit True

'уничтожаем обьект - документ
Set DocWord = Nothing

'уничтожаем обьект - Word
Set WordApp = Nothing

Если в методах Close и Quit не использовать необязательный параметр True то Word запросит согласие пользователя (если документ не был перед этим сохранён) на закрытие документа.

Если вам необходимо оставить Word открытым, просто не используйте методы Close и Quit.

Если вам необходимо поставить пароль на документ, то используйте код:

DocWord.Protect wdAllowOnlyComments, , "123456789"

Пример программы можно скачать здесь.

Понравилась статья? Поделить с друзьями:
  • Word viewer что это за программа
  • Word viewer программа для
  • Word viewer как установить
  • Word viewer как редактировать
  • Word viewer to word document