OLE-программирование на PowerBuilder для Microsoft
Word 97
1. Как получить правильный синтакс команд Visual Basic For Application (VBA),
необходимый для работы с Word 97 и как преобразовать его в правильный синтакс Power Builder
В Word 8, Office 97, Майкрософт изменил способ взаимодествия приложений с Word через механизм OLE.
Старый синтакс WordBasic может не работать правильно в новой версии Word, поэтому может потребоваться
его перевод в синтакс VBA.
1.1 Использование редактора макросов Word
Простейший путь понять функции VBA и их синтакс - это использование встроенного в Word редактора
макросов. Для того чтобы увидеть функции VBA, включите запись макросов в Word, выполните необходимую
задачу (например, выделите какой-то текст) и выключите запись макросов. Нажав ALT + F11, Вы можете
открыть редактор макросов и увидеть синтакс, сгенерированный программой Word.
Для того, чтобы получить полное описание функций и увидеть полный синтакс, Вы можете использовать
справочный файл VBAWRD8.HLP, который можно установить, выбрав выборочную инсталляцию при установке
пакета Office и выбрав опцию "Справка по VBA" (Этот файл не инсталлируется при стандартной установке).
В этом файле Вы можете найти полную информацию по функциям, которые вы можете использовать в Word и их
синтакс на VBA и WordBasic. Далее Вы получите информацию о функциях, которые Вы можете использовать в
Word 8.
1.2 Перевод синтакса VB в синтакс PowerBuilder
Примечания:
а. PowerBuilder использует квадратные скобки для индексов массивов
б. Функции с несколькими параметрами разделяются запятой между круглых скобок
Пример перевода :
Макрос, записаный редактором макросов Word.
Вот описание функции MoveLeft(), использованной в макросе, взятый из справочного файла VBAWRD8.HLP
Синтакс для вызова функции MoveLeft()
Возникает вопрос: какое значение имеют константы "wdWithInTable" и "wdCharacter"? Об этом вопросе
известно только то, что Word не предоставляет никакой информации об этом для Power Bulider. Тем не
менее, каждая константа связана со значением, которое должно быть использовано в нужном месте. В
основном, все они являютсе типом данных Integer, и Вы можете отобразить их в окне сообщения
(Message Box), для того, чтобы узнать их истинное значение.
В дополнение к справочной системе, на сервере поддержки компании Майкрософт размещена техническая
статья, содержащая числовые эквиваленты всех констант, которые могут быть найдены в пакете Office.
ID этой статьи - Q112671.
В PowerBuilder, Вы должны передавать в функцию действительное значение констант Word.
Вы также можете объявить константу в PowerScript и ассоциировать ее с тем же значением; затем вызвать
функцию Word и использовать обьявленную константу вместо действительного значения. Это позволит Вам
легко делать глобальные изменения в Вашем коде, если Майкрософт решит изменить значение константы в
будущем.
В части 3. Вы найдете список основных констант и их действительные значения.
1.3 Объектная модель Word
Если Вы откроете файл VBAWRD8.HLP, Вы найдете иерархию объектов в программе Word. Через OLE, Вы можете
просмотреть иерархию, используя точечную нотацию PowerBuilder.
Вот несколько основных объектов/методов и атрибутов:
Наименование
Описание
Application
Приложение
System
Система
MailMessage
Почтовое сообщение
Selection
Выделение
Selection.Font
Шрифт выделения
Selection.Pagesetup
Настройка страницы выделения
Selection.Border
Границы выделения
Selection.Words
Слова выделения
ActiveDocument
Активный документ
ActivePrinter
Активный принтер
Checkspelling
Проверка орфографии
CheckGrammar
Прверка грамматики
и т.д.
Некоторые методы и атрибуты объекта Application приложение) могут использоваться без указания констант
приложения.
Например, объекты ActiveDocument (активный документ) или Doceuments (Документы) считаются глобальными
объектами в объектной модели Word. Поэтомк, вместо записи:
можно написать:
Далее Вы найдете несколько примеров кодов, использующих объекты, методы и атрибуты объектной модели
Word.
2. Примеры кодов
Для работы всех кодов, приведенных ниже, в Power Builder должен быть динамически
создан OLE-объект с помощью такого кода:
Если Вы используете PowerBuilder OLE control (ole_1), Вы должны также добавить константу "object"
перед доступом к объектам, функциям и свойствам Microsoft Word.
или
2.1 Соединение с Word 8
2.2 Закладки
2.3 Проверка орфографии и грамматики
2.4 Как должен выглядеть текст
2.5 Перемещение по тексту и поиск текста
2.6 Активация и доступ к Word в datawindow
Если у Вас есть OLE столбец в datawindow, Вы должны активизировать столбец и ассоциировать его с
OLE объектом для того, чтобы получить доступ к его свойствам и функциям:
3. Частичный список констант Visual Basic for Applications и их значений для
PowerBuilder
Далее представлен список некоторых констант VBA, которые могут встретиться в Word. Для более полного
списка констант, пожалуйста посетите сайт поддержки компании Майкрософт и произведите поиск в базе
знаний Майкрософт (Microsoft knowledge base) статьи Q112671.
На сайте могут быть опубликованы рекламные материалы и ссылки. Всю ответственность за содержание рекламных материалов, текстов ссылок и контент
рекламируемых сайтов несет рекламодатель.