Ms word activedocument методы
PrintOut предназначен для вывода документов на печать. Например, следующий код (листинг 9.14.) выводит на печать все документы Microsoft Word 2007 (то есть - с расширениями docx и docm ), расположенные в корневом каталоге диска C .
Листинг 9.14. Печать всех документов из корневого каталога диска CМетод PrintOut существует для различных объектов и может принимать множество параметров, управляющих всеми тонкостями печати. Например, с помощью такого кода (листинг 9.15.) мы можем распечатать первые пять страниц текущего документа:
Листинг 9.15. Вывод на печать первых 5 страниц текущего документа9.4.9. Quit - выход из приложения
Quit используется для выхода из приложения (листинг 9.16.):
9.4.10. Run - запуск макросов
Run позволяет запускать макросы и, при необходимости, передавать им параметры (до 30). При вызове методу Run передается имя, состоящее из имени проекта, имени модуля, и, собственно, имени макроса. Например, запуск макроса MyMacros , расположенного в модуле NewModule проекта Project1 выглядит так (листинг 9.17.):
Параметры, передаваемые макросу, перечисляются после его имени через запятую.
9.4.11. ScreenRefresh - принудительное обновление экрана
ScreenRefresh позволяет принудительно обновить экран. Используется обычно в комбинации с запретом автоматического обновления экрана (свойство Application.ScreenUpdating , его мы рассмотрим ниже). Как правило, обновление экрана делают через некоторые промежутки времени - тогда у пользователя не возникает ощущения, что программа зависла.
Теперь рассмотрим наиболее полезные свойства объекта Application .
9.5. Свойства объекта Application
9.5.1. ActiveDocument и другие - активный документ
ActiveDocument возвращает объект активного документа - того, который открыт в данный момент в Microsoft Word для редактирования. У объекта ActiveDocument есть множество полезных свойств и методов. Мы обсудим их при разговоре об объекте Document .
Надо отметить, что нельзя модифицировать свойство ActiveDocument - то есть не можем с его помощью сделать неактивный документ активным. Чтобы сделать документ активным, используют специальный метод объекта Document .
Существует немало других свойств Application , имена которых начинаются с Active .
ActivePrinter возвращает объект активного принтера - устройства, используемого для печати документов по умолчанию.
ActiveWindow возвращает активное окно - объект типа Window.
9.5.2. CapsLock - текущее состояние Caps Lock
CapsLock показывает текущее состояние режима Caps Lock . Если этот режим активен, по умолчанию при вводе с клавиатуры вводятся прописные буквы. Если режим Caps Lock включен - свойство возвращает True , если выключен - False .
9.5.3. Caption - заголовок окна MS Word
Caption позволяет узнать, и, при желании, изменить заголовок окна Microsoft Word.
Например код в листинге 9.19. меняет словосочетание Microsoft Word в заголовке окна на слова "Моя программа".
9.5.4. CustomizationContext - область сохранения настроек
CustomizationContext позволяет узнавать и задавать документ и шаблон, в котором сохраняются такие настройки, как изменения в настройке меню, панелей инструментов, горячих клавиш. Чтобы узнать текущую область настройки, достаточно выполнить код из листинга 9.20.
Чтобы установить в качестве области настройки шаблон Normal.dotm (то есть - сделать настройки доступными для всех документов), достаточно воспользоваться кодом листинга 9.21.:
Листинг 9.21. Будем сохранять изменения настроек в Normal.dotmОбратите внимание на то, что в предыдущих версиях MS Word этот шаблон назывался Normal.dot .
Для сохранения изменений в шаблоне, присоединенном к активному документу, можно воспользоваться командой из листинга 9.22.:
Листинг 9.22. Сохраняем изменения в присоединенном шаблонеДля сохранения изменений лишь в текущем документе, можно использовать команду из листинга 9.23.
Листинг 9.23. Сохраняем изменения в присоединенном шаблоне9.5.5. Dialogs - диалоговые окна MS Word
Dialogs возвращает коллекцию Dialogs (Диалоговые окна), которая дает доступ ко всем диалоговым окнам Microsoft Word. Если выполнить код листинга 9.24., можно узнать количество объектов в коллекции Dialogs.
Листинг 9.24. Количество диалоговых окон в коллекции DialogsЧтобы отобразить диалоговое окно поиска строк в документе, можно использовать код, представленный в листинге 9.25.
Листинг 9.25. Запуск диалогового окна поиска строк в документеЗдесь мы объявляем объектную переменную типа Dialog , создаем ссылку на окно поиска строк в документе - это окно представлено константой wdDialogEditFind , после чего присваиваем свойству Find окна поиска значение "Строка" - именно это значение будет отображаться в строке поиска, и показываем окно поиска, используя метод Show . Похожим образом работают и с другими диалоговыми окнами. Их имена (около 230) можно найти в перечислении WdWordDialog .
9.5.7. EnableCancelKey - запрещаем остановку программы
EnableCancelKey - позволяет разрешать и запрещать пользователю остановку программы по нажатию сочетания клавиш Ctrl + Break . Это может быть полезно при выполнении участков кода, которые нельзя прерывать.
Для того чтобы запретить прерывание работы программы нужно присвоить этому свойству значение wdCancelDisabled , для разрешения - wdCancelInterrupt .
Пример использования этого оператора вы можете найти в листинге 9.27.
Листинг 9.27. Запрет прерывания выполнения программы9.5.8. IsObjectValid - проверка объектных переменных
IsObjectValid - позволяет проверить объектную переменную . Если объект, на которую она ссылается, существует - проверка возвратит True , если нет - False . Это свойство полезно использовать для проверки объектов, которые могут быть удалены пользователем. Если объект существует, можно произвести с ним какие-либо действия. Если нет - сообщить причину, по которой действия невозможны.
9.5.9. KeyBindings - назначаем клавиатурные сокращения
KeyBindings - возвращает коллекцию KeyBindings , которая содержит информацию о клавиатурных привязках. Это очень полезная коллекция - с ее помощью можно, например, назначить клавиатурную комбинацию для запуска какого-нибудь макроса. листинг 9.28. позволяет назначить комбинацию клавиш Alt + Shift + T макросу TextEdit , хранящемуся в модуле MyMacros шаблона Normal.Dotm
Листинг 9.28. Программное назначение комбинации клавиш макросуСначала с помощью свойства CustomizationContext мы устанавливаем место, где будет сохранена привязка. Это - шаблон Normal.Dotm . Далее мы используем метод Add коллекции KeyBindings . Мы передаем этому методу три параметра. Первый ( wdKeyCategoryMacro ) указывает методу на то, что мы назначаем клавиатурную комбинацию макросу. Второй -" Normal.MyMacros.TextEdit " - указывает путь к макросу, запуск которого мы назначаем клавиатурному сокращению. Третий параметр содержит вызов метода BuildKeyCode - напомню, что он генерирует код сочетания клавиш на основе переданных ему параметров. В нашем случае он сгенерирует код для сочетания клавиш Alt + Shift + T - мы передали методу параметры wdKeyAlt , wdKeyShift и wdKeyT .
Если все сделано верно - в частности, макрос, запуск которого мы автоматизируем, существует - после выполнения такого кода нажатие выбранного сочетания клавиш в любом активном документе приведет к запуску этого макроса.
9.5.10. NumLock - состояние цифровой клавиатуры
NumLock возвращает состояние клавиши NumLock - True если цифровая клавиатура находится в режиме ввода цифр, иначе - False.
9.5.11. RecentFiles - недавно открытые файлы
RecentFiles - позволяет работать с файлами, которые вы недавно открывали. Список этих файлов можно увидеть в диалоговом окне открытия файлов. Последний файл, с которым вы работали, хранится в списке первым. Чтобы открыть его, можно воспользоваться кодом из листинга 9.29.
Листинг 9.29. Открываем последний из недавно открытых файлов9.5.12. ScreenUpdating - запрет обновления экрана
Свойство ScreenUpdating используют для отключения обновления экрана во время вывода в документ большого количества информации или других действий с документом. Это позволяет ускорить работу, так как системные ресурсы не тратятся на постоянное обновление экрана. В листинге 9.30. мы запрещаем обновление экрана, выводим в документ 10000 строк, принудительно обновляя экран после каждой 1000 строк, после чего разрешаем автоматическое обновление.
Очевидно, что присвоив False свойству ScreenUpdating мы запрещаем обновление экрана, а присвоив True - разрешаем.
Макет – это один из самых универсальных объектов 1С Предприятия 8. Использование макетов широко применяется как в оформлении различных документов (отчеты, печатные формы и т.д.), так и в решении нестандартных задач (например хранение файлов внутри конфигурации).
Для чего нужен и применяется такой прекрасный тип макета как ActiveDocument? Самый банальный пример – это шаблон договора, сделанный юристом на скорую руку в MS Word. Тип макета ActiveDocument позволяет загрузить этот шаблон MS Word в конфигурации и осуществлять редактирование напрямую из конфигуратора.
Принцип работы.
К сожалению (или к счастью) работа с макетом ActiveDocument возможна только программная. Т.е. чтобы при нажатии кнопки пользователю открылся наш word-вский файлик, нужно написать код! (ВАУ)
Сама схема кода следующая:
1 – Получаем макет ActiveDocument
2 – Инициализируем COM-объект нашего ActiveDocument
3 – Работаем с этим COM-объектом (заполняем данные, редактируем, выводим на экран)
И вот тут начинается самое интересное…
Когнитивный диссонанс
Вот самые первые строчки, на которые натыкается в гугле юный неофит. В файловом варианте такой код сработает корректно (неважно в толстом или тонком клиенте). Т.к. и сервер и клиент у нас находятся на одной машине, и MS Word тоже установлен на этой машине.
А давайте представим, что у нас клиент-сервер, да ещё и сервер находится на другой машине. Будет оно работать в тонком клиенте? Нет. И тут возникнет когнитивный диссонанс. WTF? O_o
Во-первых, получить макет (любой) можно только &На Сервере. Результатом нашего получения будет объект «Оболочка ActiveDocument». «Фигня!» - скажет опытный гуру конфигурирования – «вернём &НаКлиент, как и в случае с табличным документом!»
Не фигня. Оболочка ActiveDocument существует только на сервере и вернуть её на клиент не получится (а нам-то нужно запустить Word именно на клиентской машине).
Во-вторых, инициализировав COM-объект &НаСервере, вернуть его на клиент, также не получится
(и кстати, если сделать наоборот - с клиента на сервер, тоже не прокатит)
Танцы с бубном
Как быть? Ведь нужно инициализировать COM-объект на клиенте, причем из данных, получаемых только на сервере и которых на клиент передать нельзя.
Решение у этой задачи самое корявое, которое только может быть. Но давайте вспомним, зачем мы вообще используем ActiveDocument? Правильно, чтобы внести изменения в шаблон через конфигуратор «на лету». Это и есть та единственная причина, по которой мы используем ActiveDocument. Иначе бы мы использовали тип макета «Двоичные данные».
А вот само решение точно такое же, как при использовании макета с двоичными данными! Т.е. сначала нам нужно сохранить ActiveDocument в файл, а потом, используя этот файл, инициализировать COM-объект (причем сделать это нужно на клиенте!).
Таким образом наша предыдущая схема превращается вот во что:
1 – &НаСервере Получаем макет ActiveDocument
2 – &НаСервере Сохраняем полученный макет в файл и возвращаем на клиент полное имя файла (полный путь + наименование с расширением)
3 – &НаКлиенте Инициализируем COM-объект из файла
4 - &НаКлиенте заполняем и выводим этот COM-объект
Небольшой листинг кода:
Заключение
Естественно, пример с MS Word самый простой и банальный. Вы можете запихнуть туда и другие файлики).
Метод ПолучитьМакет работает только на сервере. Методы работы или заполнения Word-а работают как на клиенте, так и на сервере. Показывать пользователю документ (Visible = Истина; Activate();) нужно на клиенте. Получается, нам нужно получить документ на сервере и передать его на клиент, чтобы показать. В данной статье будет рассмотрено 2 способа передачи с сервера на клиент. 1 способ для ActiveDocument, второй для ДвоичныеДанные.
Немного об ActiveDocument
Что пишет о ActiveDocument 1С:
Технология ActiveDocument предназначена для редактирования документов внешними по отношению к 1С:Предприятию 8 редакторами.
Эта технология позволяет редактировать документы визуально (например, Word или Excel) непосредственно в окне 1С:Предприятия 8, при этом элементы пользовательского интерфейса (меню, панели команд и т.д.) заменяются на предоставляемые редактором. Документы могут быть предварительно отредактированы и сохранены в макетах конфигурации, а затем макеты могут использоваться пользователями как основы для создания окончательных версий документов.
Следует заметить, что использование макетов ActiveDocument в режиме Предприятия осуществляется только программно - визуальное редактирование возможно только на этапе создания и редактирования конфигурации.
Эта технология применяется в случае, когда в конфигурации необходимо хранить данные, редактируемые другим приложением - такие, например, как шаблоны для факсов или деловых писем, созданные в Microsoft Word, или шаблоны прайс-листов в Microsoft Excel. Такая необходимость возникает, как правило, при регламентировании формата документов (как во внутреннем документообороте, так и при обмене документами со сторонними организациями и клиентами), однако при отсутствии ограничений на формат документа рекомендуется использовать существующие в 1С:Предприятии 8 возможности по оформлению электронных и печатных документов.
Другими словами: в ДвоичныеДанные вы можете только «Загрузить из файла» и «Выгрузить в файл»
А ActiveDocument можно прямо в конфигураторе редактировать в привычном интерфейсе Microsoft Word. Выглядит это так:
Я писал базу с нуля, где было много шаблонов Word, которые постоянно приходилось переписывать. Было очень удобно в конфигураторе открывать фактически Word, редактировать, перезапускать отладку и смотреть, что получилось. Если у вас шаблон не так часто меняется, то можно в принципе использовать «Двоичные данные».
Передача ActiveDocument с сервера на клиент
Просто получить ActiveDocument на сервере и передать его на клиент не получится. Но можно документ полностью заполнить на сервере, на клиент передать уже полностью готовый документ, и на клиенте его просто запустить.
Пример кода:
При использовании этого кода на сервере должен быть установлен офисный пакет. Представленный код является шаблоном (примером) для дальнейшего программирования. Краткий анализ кода:
1. НаКлиенте мы просто получаем файл в виде двоичных данных с сервера, записываем во временную папку и открываем оттуда файл.
2. НаСервере мы получаем макет, его заполняем (дан пример заполнения через метод Find. Execute), сохраняем во временную папку (это будет папка на сервере вида: C:\Users\<Имя пользователя, под которым запущена служба 1С>\AppData\Local\Temp\v8_F0FB_7f3.docx), переводим файл в двоичные данные и передаём на клиент. Для сохранения документа можно использовать методы Передача макет Word (Двоичные данные) с сервера на клиент
В случае передачи двоичных данных представлю практически весь код.
Краткий анализ кода:
Своим кодом я внедрился в СтандартныеПодсистемы.Печать. На форме документа 2 кнопки: «Письмо на оплату» (печать в табличный документ) и «Письмо на оплату (Word)» (печать в Word).
1. НаКлиенте на форме я получаю из модуля менеджера (функция ПечатьПисьма) структуру всех параметров. Далее получаю Word из макета (двоичные данные) и заполняю его на клиенте
2. Задача функции ПечатьПисьма модуля менеджера предназначена только для сбора сведений, которыми потом заполнится Word на клиенте.
Замечание: если вам адрес во временном хранилище нужен не сразу и единожды (как у меня), то корректней помещать во временное хранилище с уникальным идентификатором, дабы значение не удалилось пока не закрыли форму:
2. Можно сохранить файл Word в общую папку и с клиента его просто получать. Главное, чтобы файл никто не удалил.
После того, как мы при помощи объекта Application запустили Word, при помощи коллекции Documents создали (или открыли, или нашли среди уже открытых) — в общем, получили ссылку на нужный нам документ, можно выполнять с этим документом различные действия, реализованные при помощи свойств, методов и событий объекта Document. У этого объекта десятки свойств и методов, и здесь мы рассмотрим только наиболее важные и часто используемые из них. Для самостоятельного рассмотрения будут оставлены очевидные и редкоиспользуемые свойства.
Обратите внимание, что к объекту Document можно обращаться и не создавая специальную объектную переменную. Существует еще по крайней мере три способа получения доступа к объекту Document:
- работать с документом как с элементов коллекции Documents. Формате обращения может выглядеть, например, так: Documents.Item(1);
- использовать специальное ключевое слово ThisDocument. При помощи него можно получить ссылку на объект документа, которому принадлежит исполняемый программный модуль, например:
- использовать свойство объекта Application ActiveDocument. Это свойство возвращает нам объект активного документа:
Самые важные свойства объекта Document представлены ниже:
- ActiveWritingStyle — текущий активный стиль (заголовок определенного уровня, обычный текст, гиперссылка и т.п.). Рекомендуется проверить перед вводом текста.
- AttachedTemplate — возможность подключить шаблон (со всеми макросами, стилями, записями автотекста и т.п.) или проверить, какой шаблон подключен (вручную это можно сделать через меню Сервис -> Шаблоны и надстройки).
- Background — возвращает объект Shape, представляющий фоновый рисунок (фоновые рисунки видны только в режиме Web-документ);
- BuiltInDocumentProperties — возможность получить ссылку на коллекцию DocumentProperties с одноименными объектами, представляющими встроенные свойства документа (название, автор, категория, комментарии и т.п.);
- Characters — возвращает коллекцию объектов Range, каждый из которых представляет один символ. Это свойство есть не только у объектов Document, но и у объектов Selection и Range. Может использоваться, например, для выполнения операция поиска и замены или статистических подсчетов (например, для если переводчику платят за количество символов);
- Content — свойство, возвращающее объект Range, представляющий главную цепочку документа (main document story). Если говорить проще — просто текст документа, без колонтитулов, сносок, комментариев и т.п.
- CustomDocumentsProperty — свойство, возвращающее коллекцию объектов DocumentProperties, представляющих пользовательские свойства документа. Можно использовать для сохранения вместе с документом любых значений переменных. Очень удобно, например, для подсчета количества открытий документов, флажков печатался/не печатался, сколько раз вызывалась та или иная функция, на каких компьютерах и каким пользователем открывался и т.п.
- DefaultTabStop — определить отступ по умолчанию при использовании символа табуляции. По умолчанию — 35 пунктов, что примерно равно 1,25 см;
- DisableFeatures — отключить возможности, которые понимают только последние версии Word (для совместимости с пользователями, у которых на компьютерах стоят старые версии). Обычно само свойство DisableFeatures просто включает этот режим, а конкретный уровень совместимости задается при помощи свойства DisableFeaturesIntroducedAfter.
- DoNotEmbedSystemFonts — не вставлять в документ системные шрифты (по умолчанию для русского, японского и т.п. вставляются). Позволяет сократить размер документа — но тогда пользователи в системе, где не стоит русский язык, не смогут прочесть этот документ.
- EmbedTrueTypeFonts — очень полезное свойство, если вы работаете с документом в месте, где используются экзотические шрифты (например, в издательстве). Вставка true-type шрифтов гарантирует, что получатели документа будут видеть его точно таким же, как и создатель.
- Envelope — позволяет получить ссылку на специальный объект Envelope, который используется для создания почтовых конвертов.
- Fields — возможность получить ссылку на коллекцию Fields одноименных объектов. Очень полезна при работе с полями.
- Footnotes — возможность получить коллекцию сносок.
- свойства Formatting… — что показывать в списке стилей в панели инструментов Форматирование.
- FormFields — аналогично Fields, но в этом случае мы получаем ссылку на поля в формах.
- FulName — полное имя объекта (вместе с путем к нему в файловой системе или Web). Доступно, конечно, только для чтения.
- GrammarChecked — пометить весь документ, как проверенный с точки зрения грамматики (фактически отключить проверку грамматики для данного документа). Такое же свойство существует и у объекта Range. Коллекцию ошибок, выловленных при проверке грамматики, можно получить при помощи свойства GrammaticalErrors, а выделить ошибки зеленым волнистым подчеркиванием (если они еще не выделены) — при помощи свойства ShowGrammaticalErrors. Для орфографических ошибок существует аналогичные свойства SpellingChecked, SpellingErrors и ShowSpellingErrors.
- HasPassword — проверить, назначен ли пароль для указанного документа. Password — назначить пароль. По причине крайней слабости парольной защиты пароли в Word, Excel и Access использовать не рекомендуется.
- Indexes — возвращает коллекцию индексов (то есть предметных указателей) для документа.
- Name — возвращает имя документа (без пути к нему).
- OpenEncoding — возвращает кодовую страницу, которая использовалась для открытия документа. Для русского языка по умолчанию, конечно, 1251.
- PageSetup — позволяет получить ссылку на одноименный объект. Используется, конечно, в основном при реализации печати.
- Paragraphs — возвращает ссылку на коллекцию абзацев в данном документе.
- Path — возвращает путь к документу в файловой системе (без имени). Может пригодиться, чтобы создать еще один файл по тому же пути.
- Permission — возможность получить доступ к объекту Permission, который позволяет управлять системой внутренних разрешений документа Word (не разрешений файловой системы).
- PrintRevisions — печатать или нет пометки редактора (исправления) вместе с документом. По умолчанию — печатать.
- ProtectionType — проверить защиту данного документа (разрешено все, или только комментарии, чтение, изменения в полях форм и т.п.). Сама защита устанавливается при помощи метода Protec()t.
- ReadOnly — здесь объяснений не требуется. Это свойство доступно только на чтение (поскольку соответствующий атрибут устанавливается в файловой системе).
- RemoveDateAndTime и RemovePersonalInformation — удалить информацию о дате и времени произведенных изменений и всю информацию о пользователе из документа (включая свойства документа). Может быть полезным при создании файла-образца.
- Saved — очень важное свойство. Позволяет определить, изменялся ли документ со времени последнего изменения.
- SaveEncoding — позволяет явно указать (или получить) кодировку, которая будет использоваться при сохранении документа.
- SaveFormat — позволяет получить информацию о формате документа (DOC, RTF, TXT, HTML и т.п.). Доступно только для чтения.
- Sections — возвращает коллекцию разделов документа. Sentences — то же самое для предложений. Аналогично работают свойства Shapes , Styles, Subdocuments, Tables, Windowsи Words .
- Type — возвращает тип документа (обычный, шаблон или Web-страница с фреймами).
- Variables — еще одно очень удобное свойство. Можно использовать для сохранения своих служебных данных вместе с документом, как и пользовательские атрибуты ( custom attributes), но в отличие от пользовательских атрибутов документа, пользователям эти свойства не видны.
Теперь — о самых важных методах объекта Document:
- Activate() — этот метод позволяет сделать указанный вами документ активным (например, для ввода текста).
- AddToFavorities() — добавить ссылку на документ в каталог "Избранное". Может быть полезным, если пользователь будет работать с ним постоянно.
- CheckSpelling() и CheckGrammar() — запустить проверку орфографии и грамматики соответственно.
- Close() — закрыть документ. Можно закрыть с сохранением (по умолчанию), а можно — без (если указать соответствующий параметр).
- Compare() — сравнить документ с другим и сгенерировать редакторские пометки в местах, где обнаружены различия.
- DataForm() — возможность редактирования форм данных — то есть данных, которые в документе разделены разделителями полей и строк. Вообще говоря, формы данных в Word рекомендуется использовать только в случае крайней необходимости — гораздо больше дл работы с упорядоченными данными приспособлены Excel и Access.
- DetectLanguage() — определить язык текста. Проверка производится по предложениям, на основе сверки слов в них со встроенными словарями. Такая проверка производится автоматически во время ввода текста или открытия нового документа. Чтобы заново провести проверку языков, свойство LanguageDetected нужно перевести в False.
- FitToPages() — очень интересный метод. Размер шрифта автоматически меняется таким образом, чтобы текст стал занимать на одну страницу меньше. Можно использовать для устранения "висячих страниц" и других проблем верстки.
- FollowHyperlink() — открыть указанный вами документ в соответствующем приложений (если HTML, то в Internet Explorer).
- GoTo() — очень мощный метод, существует для объектов Document, Range и Selection. В первых двух случаях он возвращает объект Range, в третьем — просто перемещает указатель ввода текста на нужное место. Умеет переходить на начало страницы, строки, закладки, комментария, таблицы, секции, поля, ссылки, формулы и т.п. Может на определенный номер этого объекта, первый, последний, следующий и т.п. Очень удобно использовать для установки указателя в нужное место для автоматического ввода текста.
- Merge() — возможность произвести слияние двух документов. Метод очень сложный и мощный, основывается на применении редакторских пометок.
- PresentIt() — открывает данный документ Word в PowerPoint.
- PrintOut() — очень сложный метод, который позволяет вывести на печать весь документ или его часть. Принимает два десятка параметров (все — необязательные). Может использоваться для объектов Application, Document и Window.
- PrintPreview() — перевести документ в режим предпросмотра.
- Protect() — возможность ограничить внесения изменений в документ при помощи пароля или IRM.
- Range() — очень важный метод. Возвращает объект Range (он будет рассмотрен ниже), принимает в качестве параметров номер начального символа диапазона и номер конечного символа.
- Redo() — повторить последнее действие. В качестве параметра принимает количество последних действий, возвращает True, если повтор был произведен успешно.
- Repaginate() — переразбить документ на страницы. Обычно используется, если автоматическая разбивка была ранее отключена.
- Save() — смысл этого метода очевиден. Если документ еще не сохранялся, открывается диалоговое окно Save As.
- SaveAs() — очень мощный и сложный метод. Можно определить путь для сохраняемого документа, его формат, кодировку, пароли на открытие и изменение документа, вставку шрифтов и многое другое. Очень полезный метод, например, для автоматической конвертации документов.
- Select() — позволяет просто выделить весь документ. Этот метод существует для очень большого количества объектов, в том числе Selection и Range.
- TransformDocument() — исключительно мощный метод, но только для программистов, которые хорошо разбираются в XML и XSLT. Позволяет применить к документу таблицу преобразований стилей (Extensible Stylesheet Language Transformation, XSLT), при помощи которой можно поменять все, что угодно.
- Undo() — отменить определенное количество последних действий. По синтаксису и принципам работы — полный аналог Redo().
- UndoClear() — очистить буфер отмены изменений, чтобы пользователь не смог откатить произведенные действия.
- UnProtect() — снять защиту с документа (определенную методом Protect() или на графическом интерфейсе). Может быть очень полезным перед программным внесением изменений в защищенный документ.
Часто используемых событий у объекта Document всего три — New() (можно определить только для шаблона, срабатывает, когда на основе этого шаблона создается новый документ), Open() и Close(). Все эти свойства очевидны и изначально доступны в окне редактора кода Visual Basic.
Читайте также: