C word application
Записная книжка программиста-новичка, C#, SQL, PHP и все-все-все
Я ведь это уже делал, но хрен теперь найдешь тот кусок кода, гуглим снова… Где бы найти простое и понятное руководство для начинающего, а не тонкости для мега-гуру?
Навигация по записям
Работаем с MS Word из C#, часть 1. Открываем шаблон, ищем текст внутри документа
Задача: вывести данные в документ Word. На самом деле это очень большая и необъятная тема, примерно как сам Word, 90% возможностей которого не используются обычными пользователями. Сузим до более простой и чаще встречающейся на практике задачи, с которой в своей время пришлось столкнуться мне самому: надо вывести красивую справку, договор, отчет или иной документ Word с добавлением данных из кода C#. Само собой должны поддерживаться версии Word до 2007, так что о новых форматах файлов придется забыть.
Для начала вспомним, что в Word есть такая замечательная вещь как шаблоны. Соответственно большую часть сложного оформления можно вынести в них и из кода открывать шаблон и вставлять данные в нужные места. Для начала ограничимся простыми строками (типовая задача в крупных предприятиях — вставка дат, цифр, фио и тому подобных вещей, договор на сумму такую-то, от такой-то даты с фио таким-то с параметрами объекта такими-то).
Задача на текущую статью: открыть из кода C# шаблон Word и что-то в него вставить. Шаблон в формате .dot приготовим заранее, в том же самом ворде. Для связи с ним будем использовать механизм COM Interoperability (сокращенно Interop), то есть запускать отдельный exe-процесс самого Word и через специальный интерфейс управлять им. Интерфейсы слава богу есть и находятся они в специальных библиотеках, поставляемых вместе с Office, но документация по ним крайне невнятная, поведение местами очень странное и не логичное. В версиях Visual Studio 2010 и выше возможности программирования Office расширены, но текущее руководство действительно и для 2008 студии.
1. Подключить нужные библиотеки
2. Открыть шаблон Word
3. Найти в нем нужное место
4. Вставить в него строку с информацией
1. Проект в студии у нас уже должен быть. В разделе Ссылки/References кликаем правой кнопкой, идем в «Добавить ссылку» и ищем Microsoft.Office.Interop.Word. В параметрах добавленной библиотеки ставим true в Копировать локально/Copy local, так как библиотеку надо копировать вместе с исполняемыми файлами проекта.
В код добавляем соответствующие using
2. Теперь вам предстоит провести много времени с замечательным интерфейсом Word, который представляет сам текстовый редактор и его потроха в виде разнообразных обьектов. Сейчас важны два — Application и Document. Переменные для них по ряду не очевидных причин лучше объявлять через интерфейсы.
Так же почти все функции Word требуют объектных параметров, даже если внутри них сидят простые строки и логические значения, так что лучше заранее сделать несколько оберток
Чтобы запустить Word и открыть в нем шаблон с диска (путь известен), потребуется примерно такой код
Принципиально важны два момента
1. Мы создаем неуправляемый ресурс, который не соберет сборщик мусора — отдельный процесс в памяти с приложением Word, если мы его не закроем и не выведем на экран, он так и останется там висеть до выключения компьютера. Более того такие ворды могут накапливаться незаметно для пользователя, программист-то еще прибьет их вручную. Заботиться о высвобождения неуправляемого ресурса должен программист.
2. По умолчанию Word запускается невидимым, на экран его выводим мы.
Для начала рассмотрим самый простой и примитивный вариант — поиск и замена строки в документе Word. Некоторые программисты так и работают — ставят в шаблон текстовую метку вроде @@nowDate и заменяют ее на нужное значение.
Пришло время познакомится с фундаментом работы с Word — великим и ужасным объектом Range. Его суть сложно описать словами -это некоторый произвольный кусок документа, диапазон (range), который может включать в себя все что угодно — от пары символов, до таблиц, закладок и прочих интересных вещей. Не стоит путать его с Selection — куском документа, выделенным мышкой, который само собой можно конвертировать в Range. Соотвественно нам надо получить Range для всего документа, найти нужную строку внутри него, получить Range для этой строки и уже внутри этого последнего диапазона заменить текст на требуемый. И не стоит забывать, что документ может иметь сложную структуру с колонтитулами и прочей ересью, возможный универсальный метод для замены всех вхождений данной строки:
На самом деле это не самый лучший метод для вставки информации в документ, так как могут возникнуть сложности с уникальными именами для текстовых меток (если текст одной входит в начало другой, данный метод найдет ее и заменит), их совпадением с произвольным текстом и так далее.
Даже если нам надо найти (и например отформатировать) именно строку с текстом внутри документа, лучше всего выдать наружу найденный Range и уже с ним производить разные злодеяния. Получим примерно такой метод:
Простейшее решение проблемы уникальности текста (нужно нам найти Range слова Word, но внутри всего документа оно встречается десятки раз) — искать строку внутри строки, сначала найти уникальную строку, потом не уникальную внутри нее, неэстетично, но дешево, надежно и практично.
Если строку надо просто заменить, то сойдет простейшее
Но так как Range является универсальный контейнером для любого куска документа Word, то его возможности неизмеримо шире, часть их будет рассмотрена в дальнейших заметках.
Если нам надо просто встать в начало документа (и что-то вставить уже туда):
Сохранить документ на диск можно следующим образом
VBA Excel. Управление приложением Word
Создание нового экземпляра приложения Word из кода VBA Excel или подключение к открытому для работы с документами. Функции CreateObject и GetObject.
Работа с Word из кода VBA Excel
Часть 1. Управление приложением Word
[Часть 1] [Часть 2] [Часть 3] [Часть 4] [Часть 5]
Создание объекта Word.Application
Экземпляр приложения Word необходим для того, чтобы с его помощью создавать новые документы или открывать существующие для редактирования из кода VBA Excel.
Создать новый экземпляр объекта Word.Application можно при помощи раннего или позднего связывания, используя при позднем связывании функцию CreateObject. Подключиться к открытому экземпляру приложения Word можно только при помощи позднего связывания, используя функцию GetObject.
Раннее связывание приложения Word
Создание нового экземпляра Word.Application и присвоение ссылки на него переменной myWord:
Для раннего связывания переменной с объектом Word.Application необходимо подключить в редакторе VBA Excel ссылку на библиотеку Microsoft Word Object Library, если она не подключена. Подключается ссылка в окне «References VBAproject», перейти в которое можно через главное меню редактора: Tools–>References…
Раннее связывание позволяет при написании кода использовать лист подсказок для выбора и вставки свойств и методов привязанных объектов (Auto List Members). Если проект VBA Excel создается на заказ, то, после его завершения, раннее связывание следует заменить на позднее, так как на компьютере пользователя может не оказаться нужной библиотеки, и код работать не будет.
Позднее связывание приложения Word
Создание нового экземпляра Word.Application с помощью функции CreateObject и присвоение ссылки на него переменной myWord:
Присвоение переменной myWord ссылки на открытый экземпляр приложения Word с помощью функции GetObject:
Если открытого приложения Word нет, выполнение функции GetObject приведет к ошибке. Чтобы ее избежать, следует предусмотреть создание нового экземпляра Word.Application с помощью функции CreateObject, если открытое приложение не будет найдено (смотрите пример 3).
В программы VBA Excel, работающие с Word, следует включать обработчик ошибок.
Закрытие объекта Word.Application
Новый экземпляр приложения Word открывается в фоновом режиме. Если необходимо его отобразить на экране перед завершением программы, используйте следующий код:
Если перед завершением процедуры VBA Excel необходимо приложение Word закрыть, используйте метод Quit:
Если переменная не содержит ссылку на приложение (myWord = Nothing), метод Quit возвратит ошибку. Чтобы этого не произошло, перед применением метода Quit необходимо проверить наличие ссылки в переменной myWord (смотрите пример 3).
Примеры открытия и закрытия Word
Пример 1
Создаем новый экземпляр объекта Word.Application с ранним связыванием и отображаем его на экране:
Запустите код примера 1 на выполнение. Вы увидите появившийся на панели задач ярлык приложения Word. Перейдите на него и закройте приложение вручную.
Пример 2
Создаем новый экземпляр объекта Word.Application с поздним связыванием, отображаем его на экране, останавливаем программу и наблюдаем закрытие приложения методом Quit:
Запустите код примера 2 на выполнение. Закройте информационное окно MsgBox и смотрите, как исчезнет с панели задач ярлык приложения Word, созданного перед остановкой кода.
Пример 3
Пытаемся создать ссылку на открытый экземпляр приложения Word с помощью функции GetObject, а если открытого экземпляра нет, создаем новый с помощью функции CreateObject:
Строка On Error Resume Next передаст управление следующему оператору, если открытого экземпляра программы Word не существует, и выполнение функции GetObject приведет к ошибке. В этом случае будет создан новый экземпляр Word.Application с помощью функции CreateObject.
В код добавлен обработчик ошибок On Error GoTo Instr , который поможет корректно завершить программу при возникновении ошибки. А также он позволит во время тестирования не наплодить большое количество ненужных экземпляров приложения Word. Проверяйте их наличие по Диспетчеру задач (Ctrl+Shift+Esc) и удаляйте лишние.
Строка Exit Sub завершит процедуру, если она прошла без ошибок. В случае возникновения ошибки, будет выполнен код после метки Instr: .
Megano Blog
среда, 9 февраля 2011 г.
Использование WORD шаблонов C# 4.0
Инструментарий:
• Microsoft Visual Studio 2010
• Microsoft Office 2010
исходники к статье
Данная статья является адаптацией более ранней статьи «Использование WORD шаблонов» с учетом новых возможностей вошедших в C# 4.0 таких как: именованные параметры, пропуск ключевого слова ref при работе с COM, индексируемые свойства и необязательные параметры. Вы можете сравнить количество кода с предыдущей статьей и увидеть, что кода сало много меньше, так же он стал более читабельным.
Все программы работают с данными и довольно часто их приходится выводить на печать, или отправлять по электронной почте, к тому же, бывает необходимо не просто послать сухие списки, а выделить какую-нибудь информацию, повышая ее важность при диагональном прочтении, или создать красивые графики с таблицами для любимого начальства и все это обязательно на фирменном бланке.
Для решения этой задачи могут пригодиться шаблоны WORD, ведь в большинстве своем для каждого случая существует свой, заранее разработанный бланк, в который просто подставляются текущие данные.
Предположим, существует некая компания «Ключи и Отвертки», которая занимается продажами обозначенных инструментов, и менеджеры компании хотят видеть ежедневный отчет о продажах в своих офисах.
Начнем с простого шаблона, который будет представлять из себя фирменный бланк компании и единственное поле для вставки данных. Создадим новый WORD документ и уменьшим отступы (Page Layout -> Margins -> Narrow).
После этого развернем документ в альбомную ориентацию (Page Layout -> Orientation -> Landscape).
Далее создадим шапку (Insert -> Header –> Alpabet).
Напишем название. Далее впишем дополнительную информацию о компании и пометим ее курсивом с выравниванием по правому краю.
После создания шапки в документ автоматически был добавлен пустой подвал, перейти в редактирование которого можно просто перенеся туда курсор. Визуально отделим его от тела документа при помощи разделительной линии. (Insert –> Shapes -> Lines)
Далее, в подвале сделаем выравнивание по правому краю и создадим закладку (Bookmark), которую будем отыскивать в коде и на ее место вставлять данные (Insert -> Bookmark).
И назовем ее AuthorName.
На этом завершим создание фирменного бланка, сохраним шаблон с именем screwdriver.dotx (Word Template)
Следующим шагом создадим из кода новый документ Word, на основе нашего шаблона, впишем автора документа и сохраним его на диск.
Создадим в Visual Studio WPF приложение с названием UsingWordTemplate ( File -> New -> Project -> Windows -> WPF Application).
Добавим на форму Label (Content=»Автор:»), TextBox (Name=”autorTxtb”), в который будем вписывать имя автора документа и кнопку (Content=»Сохранить» Name=”saveBtn”), с помощью которой будем сохранять созданный документ.
Добавим ссылку на .Net библиотеку Microsoft.Office.Interop.Word Version 14. В шапке кода главного окна добавим
После чего определим переменную
Переменная oWord будет представлять процесс WINWORD.EXE в памяти.
Так же определим событие формы Closing, в котором мы будем закрывать процесс WINWORD.EXE
В предыдущем фрагменте кода мы незаметно использовали новую возможность C# 4.0 — необязательные параметры. Если сравнить с предыдущим вариантом статьи, то тогда нам потребовалось определить переменную oMissing представляющую из себя аргумент представляющий значение по умолчанию, который требуют методы из пространства Microsoft.Office.Interop. И вызов выглядел следующим образом:
В противном случае, после закрытия нашей программы, в процессах будет висеть не выгруженный WINWORD.EXE процесс.
Вызовем контекстное меню текущего проекта и добавим в него заранее созданный шаблон screwdriver.dotx (Add -> Existing Item -> screwdriver.dotx), в его свойствах определим Copy To Output Directory как Copy always.
Определим обработчик кнопки:
Загружаем сохраненный шаблон, заполняем его данными с формы и сохраняем на диск, после чего закрываем документ.
Здесь мы вновь используем пропуск ключевого слова ref,необязательные параметры и так же новую возможность – именованные параметры. Для сравнения посмотрим на код которым мы пользовались ранее:
Остерегайтесь использования Environment.CurrentDirectory так как значение может измениться в процессе работы.
Как показано выше мы можем сами изменить ее значение, в данном случае Environment.CurrentDirectory больше указывает не на каталог приложения, а на корень диска C.
Ниже приведен код вызванных методов:
Сигнатуры вызываемых методов из пространства имен Microsoft.Office.Interop можно посмотреть по адресу:
Введем в текст бокс данные автора документа “Александр Кобелев” и сохраним документ на диск нажав кнопку “Сохранить”. В папке Debug нашего приложения появится файл New.docx, содержащий введенные данные на месте bookmark AuthorName.
Теперь добавим еще одну кнопку (Content=»Print» Name=»prntBtn») на форму, которая будет распечатывать документ на принтер и определим ее обработчик.
Здесь все то же самое, что и в предыдущем случае, только вместо метода SaveToDisk вызывается PrintOut() и перед закрытием документа явно определяется, что документ не стоит сохранять. В предыдущем случае, при сохранении документа на диск, он помечался как сохраненный и не требовалось явно указывать этот параметр.
Теперь добавим на шаблон таблицу 3 на 4, которая будет отображать продажи по городам. Верхняя строчка обозначит ключи и отвертки, а первый столбик города: Москва, Санкт-Петербург, Челябинск. Разукрасим таблицу по своему вкусу.
Далее мы могли бы поставить шесть закладок (boomark), задать им уникальные имена и искать их как в предыдущем случае, но это слишком накладно. Можно поступить проще – выделить всю таблицу и добавить закладку на все выделение сразу.
Назовем новую закладку “SaleTable”.
Добавим на форму DataGrid, со свойством AutoGenerateColumns=»True», а в код новую переменную
В конструкторе вызовем метод, который заполнит DataTable и свяжет его с DataGrid
Добавим в метод SetTemplate() вызов метода SetTable() который будет заполнять данными таблицу.
Как видно из листинга, мы перебираем по очереди все ячейки в шаблоне и сопоставляем их с данными из DataTable.
Продолжая развивать идею предположим, что менеджерам компании было бы удобно, если бы при очень низких значениях продаж (меньше 100), в отчете это отмечалось красной ячейкой, сразу бросающейся в глаза и наоборот, если уровень продаж высок (больше 500), ячейка помечалась зеленым цветом.
Для реализации немного изменим метод SetTable() , заменив явное присваивание на вызов метода SetCell().
В методе SetCell() пытаемся применить парсинг к строковому аргументу и, при удачном исходе, в зависимости от значения, задаем фон для ячейки таблицы.
Перейдем к графикам.
Для использования графиков потребуется ссылка на .Net библиотеку Microsoft.Office.Interop.Excel Version 14. Так же в шапке кода главного окна добавим using
Сделаем несколько отступов вниз, для создания пространства между таблицей и графиком, добавим в шаблон график (Insert -> Chart -> Column -> 3d Column)
и выставим все значения по нулям.
После чего выделим график на шаблоне (кликнув по краю графика) и создадим новую закладку “ChartBookmark”, далее сохраним изменения в шаблоне.
Добавим в метод SetTemplate() вызов метода SetChart(), который будет заполнять данными график.
Теперь приложение полностью готово к работе, введем некоторые данные, чтобы провести функциональный тест. В строке автор я введу “Александр Кобелев” а значения продаж по городам у меня будут такие: Ключи/Отвертки Москва – 700/400, Санкт-Петербург – 50/300, Челябинск – 100/200. После нажатия кнопки “Сохранить” в папке Debug приложения появился файл New.docx, такого вида:
Как видно из статьи, изменения вышедшие в C# 4.0 — намного сокращают код необходимый для работы с СОМ, в частности при работе с Office.
Работа с Word — Создание, открытие, форматирование, закрытие и сохранение
Использование 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.
Чтобы создать новый экземпляр Word, введите такой код кнопки;
Для форматирования печатной области документа используйте данный код:
(вообще-то Word использует для всех размеров своих элементов пункты, поэтому для использования других единиц измерения, необходимо использовать встроенные функции форматирования.)
- CentimetersToPoints(Х.ХХ) — переводит сантиметры в пункты.
- MillimetersToPoints(X.XX) — переводит миллиметры в пункты
Для того чтобы в своём приложении не писать постоянно одно и тоже имя объекта, можно использовать оператор With.
Например код находящейся выше можно переписать так:
Если вам необходимо создать документ Word с нестандартным размером листа, то используйте данный код:
Данный код меняет ориентацию страницы (практически меняет местами значения ширины и высоты листа):
- wdOrientLandscape — альбомная ориентация ( число 1)
- wdOrientPortrait — книжная ориентация ( число 0)
Для сохранения документа под новым именем и в определенное место используйте данный код код:
После такого сохранения вы можете про ходу работы с документом сохранять его.
Или проверить, были ли сохранены внесенные изменения свойством Saved и если изменения не были сохранены — сохранить их;
Завершив работу с документом, вы можете закрыть сам документ методом Close и сам Word методом Quit.
Если в методах Close и Quit не использовать необязательный параметр True то Word запросит согласие пользователя (если документ не был перед этим сохранён) на закрытие документа.
Если вам необходимо оставить Word открытым, просто не используйте методы Close и Quit.
Если вам необходимо поставить пароль на документ, то используйте код:
Объект Word Application — методы
В этой статье мы рассмотрим методы объекта 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.
- В окне редактора для созданного модуля пишем код:
Все, теперь в редакторе кода в окне объектов появится объект App, который и предоставляет возможность работать с событиями Word Application в VBA.
Знаю, знаю, статья получилась довольно сухая – практически нет примеров Но ничего, в следующей статье мы быстренько пробежимся по некоторым свойствам, а потом еще попытаемся осилить коллекцию Documents и класс Document, без которых просто невозможно двигаться дальше.
Спасибо за внимание. Автор блога Владимир Баталий