Logo Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware
Скидка до 20% на услуги дата-центра. Аренда серверной стойки. Colocation от 1U!

Миграция в облако #SotelCloud. Виртуальный сервер в облаке. Выбрать конфигурацию на сайте!

Виртуальная АТС для вашего бизнеса. Приветственные бонусы для новых клиентов!

Виртуальные VPS серверы в РФ и ЕС

Dedicated серверы в РФ и ЕС

По промокоду CITFORUM скидка 30% на заказ VPS\VDS

VPS/VDS серверы. 30 локаций на выбор

Серверы VPS/VDS с большим диском

Хорошие условия для реселлеров

4VPS.SU - VPS в 17-ти странах

2Gbit/s безлимит

Современное железо!

2006 г.

Word и его объекты
Лекция из курса «Основы офисного программирования и документы Word»

Биллиг Владимир Арнольдович
Интернет-Университет Информационных Технологий, INTUIT.ru

Назад Оглавление Вперёд

Проверка правильности написания текста

Три объекта, связанные с проверкой грамматики и орфографии: Languages, Dictionaries, SpellingSuggestions, позволяют установить нужный язык, выбрать словарь, в том числе пользовательские словари, а также работать со списком слов, предлагаемых для исправления при обнаружении ошибки правописания. Команды SpellingAndGrammar и Language меню Tools предоставляют аналогичные возможности при работе с документом вручную. Новый объект LanguageSettings позволяет получить установки языкового предпочтения на разных этапах работы с приложением. Взгляните на пример, в котором показана работа с этими объектами:

Листинг 1: html, txt

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

'C:\Program Files\Common Files\Microsoft Shared\Proof\MSSP_RU.LEX
Русский
Установлен английский язык в качестве языка инсталляции, интерфейса и справки
Русский язык является одним из предпочтительных языков редактирования.

Листинг 1: html, txt

Синонимы

Объект SynonymInfo полезен при выборе синонимов, антонимов или слов и предложений, связанных по смыслу с текущим проверяемым словом.

Письма

Существует несколько объектов, которые могут быть полезны при работе с почтой. Объект MailingLabel позволяет работать с конвертами и адресами. Он позволяет распечатать адрес на конверте или создать страницу с адресами, которую можно затем распечатать и использовать адреса как наклейки. Его возможности во многом совпадают с тем, что можно делать вручную при выборе пункта Envelopes and Labels (Конверты и наклейки) меню Tools (Сервис). Приведем пример работы с этим объектом. В этом примере один адрес печатается непосредственно на конверте, а для другого, отмеченного специальной закладкой с именем EnvelopeAddress, создается документ с наклейками:

Public Sub WorkWithMail()
   'Работа с почтовыми сообщениями
   Dim MyAddr As String, MyName As String
   Dim MailLab As CustomLabel
   MyName = Application.MailingLabel.DefaultLabelName
   Debug.Print MyName
   
   Set MailLab = Application.MailingLabel.CustomLabels _
   .Add(Name:="My Friend", DotMatrix:=True)
   MyAddr = "Россия" & vbCrLf & "Мой город" & vbCr & "Моя улица, 41, 7" & vbCr _
      & "Моему другу"
   'MailLab.PageSize = wdCustomLabelLetter
   If Documents("DocOne").Bookmarks.Exists("EnvelopeAddress") Then
      Application.MailingLabel.PrintOut _
         Name:=MyName, ExtractAddress:=True, SingleLabel:=True
   End If
   
   Application.MailingLabel.CreateNewDocument _
      Name:="My Friend", Address:=MyAddr
   
End Sub

Листинг 1: html, txt

Мне не удалось установить размер страницы у объекта MailLab класса CustomLabel. Полагаю, что это небольшой "жучок", не имеющий, впрочем, принципиального значения.

Электронные письма

Объект MailMessage представляет активное EMail-сообщение. Для работы с методами этого объекта помимо активности сообщения требуется дополнительно, чтобы Word использовался, как редактор этого сообщения.

Несмотря на то, что я выполнил условия, необходимые для работы с этим объектом, ни один из его методов мне вызвать не удалось. Лишь свойство Application этого объекта вызывалось корректно, как показано в следующем примере:
Public Sub WorkWithMailMessage()
 Dim mes As MailMessage
 Documents("test").Activate
 Set mes = Application.MailMessage
 If Not (mes Is Nothing) Then
   Debug.Print mes.Application.Name
   'mes. DisplaySelectNamesDialog
   'mes.CheckName
   'mes.GoToNext
   'mes. DisplayMoveDialog
 End If
End Sub

Листинг 1: html, txt

Новый появившийся в Office 2000 объект EmailOptions позволяет устанавливать некоторые общие опции, в частности, автоматически добавляемую подпись. В нашем следующем примере добавляемая подпись выбирается в зависимости от выбранного языка. На самом деле выбирается не сама подпись, а ее имя из списка уже подготовленных подписей. Сами подписи должны быть созданы вручную на вкладке Email Options меню Tools|General.

Public Sub WorkEmail()

   With Application.EmailOptions.EmailSignature
      
      If Selection.LanguageID = wdRussian Then
         .NewMessageSignature = "Подпись"
         .ReplyMessageSignature = "Подпись"
      Else
         .NewMessageSignature = "sign1"
         .ReplyMessageSignature = "sign1"
      End If
      Debug.Print .NewMessageSignature
      
   End With

End Sub

Листинг 1: html, txt

Настройка

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

Public Sub WorkWithOptions()
   'работа с объектом Options
   Options.AutoFormatAsYouTypeReplaceFractions = True
   Options.AllowDragAndDrop = True
   Options.CheckGrammarWithSpelling = True
   Options.EnableSound = False
   Options.MonthNames = wdMonthNamesEnglish
   Options.PrintComments = True
End Sub

Листинг 1: html, txt

Конверторы

Word позволяет работать с документами, подготовленными не только в более ранних его версиях, но и в других текстовых редакторах. Для этого используются конверторы файлов. Коллекция объектов FileConverters позволяет выбрать тот или конвертор. У коллекции нет методов Add и Delete, поэтому добавлять новые конверторы или удалять ненужные конверторы программно нельзя. Это делается в процессе инсталляции Office 2000. В следующем примере печатаются имена конверторов, доступных на моей машине и анализируются некоторые их свойства:

Public Sub ConvertDoc()
   'Работа с конвертором
   Dim conv As FileConverter
   Debug.Print Application.FileConverters.Count
   For Each conv In Application.FileConverters
      Debug.Print conv.Name, conv.FormatName, conv.ClassName
      If conv.CanOpen And conv.CanSave Then
         Debug.Print "Конвертор может открывать и сохранять файлы"
      End If
   Next conv
End Sub

Листинг 1: html, txt

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

26 
       	Text with Layout	        Text with Layout
Конвертор может открывать и сохранять файлы
         MS-DOS Text with Layout   MS-DOS Text with Layout
Конвертор может открывать и сохранять файлы
         WordPerfect 5.x for Windows WrdPrfctWin
         WordPerfect 5.1 for DOS     WrdPrfctDOS51

Листинг 1: html, txt

Поиск файлов

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

Характеристики

Объект FontNames отвечает за список всех доступных шрифтов. Аналогичные возможности предоставляет команда Font меню Format.

Объект RecentFiles позволяет работать со списком файлов наиболее позднего использования.

Объект System ведает информацией о характеристиках компьютера и операционной системы. Приведем пример работы с этим объектом, в котором определяются некоторые рабочие характеристики моего компьютера и окружения:

Public Sub WorkWithSystem()
   'Получение характеристик компьютера и окружения
   Dim env As System
   Set env = Application.System
   'Debug.Print "Тип компьютера - ", env.ComputerType
   Debug.Print "Тип процессора - ", env.ProcessorType
   Debug.Print "Операционная система - ", env.OperatingSystem
   Debug.Print "Язык - ", env.LanguageDesignation
   Debug.Print "Свободного дискового пространства - ", env.FreeDiskSpace
   Debug.Print "Курсор - ", env.Cursor

End Sub

Листинг 1: html, txt

Вот результаты работы этой процедуры:

Листинг 1: html, txt

Заметьте, на этой платформе не удается получить тип компьютера.

Задачи

Коллекция объектов Tasks содержит задачи, выполняемые системой в текущий момент. Возможно, Вы и не подозреваете, как много задач выполняется за кулисами операционной системы. В следующем примере распечатывается список имен задач, входящих в момент запроса в коллекцию:

Public Sub WorkWithTasks()
   'Работа с задачами
   Dim Tsk As Task
   Debug.Print Application.Tasks.Count
   For Each Tsk In Application.Tasks
      Debug.Print Tsk.Name
   Next Tsk
   
End Sub

Листинг 1: html, txt

Весь список из 65 текущих задач я приводить не буду, хотя познакомиться с ним полезно. Я ограничусь приведением имен лишь некоторых задач из начала и конца списка:

65 
Microsoft Agent
Microsoft Office Shortcut Bar
Menu Parent Window
NetDDE Agent
Edit
Microsoft Visual Basic - DocOne [running] - [Examples (Code)]
Ch1 - Microsoft Word
Run Sub/UserForm
View
DocOne - Microsoft Word
Edit

Transmission window
MarshalingWindow
OLEChannelWnd
MarshalingWindow
Microsoft Outlook
Program Manager

Листинг 1: html, txt

Назад Оглавление Вперёд

Бесплатный конструктор сайтов и Landing Page

Хостинг с DDoS защитой от 2.5$ + Бесплатный SSL и Домен

SSD VPS в Нидерландах под различные задачи от 2.6$

✅ Дешевый VPS-хостинг на AMD EPYC: 1vCore, 3GB DDR4, 15GB NVMe всего за €3,50!

🔥 Anti-DDoS защита 12 Тбит/с!

VPS в России, Европе и США

Бесплатная поддержка и администрирование

Оплата российскими и международными картами

🔥 VPS до 5.7 ГГц под любые задачи с AntiDDoS в 7 локациях

💸 Гифткод CITFORUM (250р на баланс) и попробуйте уже сейчас!

🛒 Скидка 15% на первый платеж (в течение 24ч)

Новости мира IT:

Архив новостей

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru,
тел. +7 495 7861149
Пресс-релизы — pr@citforum.ru
Обратная связь
Информация для авторов
Rambler's Top100 TopList This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2019 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...