2006 г.
Биллиг Владимир Арнольдович
Интернет-Университет Информационных Технологий, 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
Назад Оглавление Вперёд