Базы данных ворд. Access. Взаимодействие приложений. Часть Интеграция с Office 2000
Скачать 0.56 Mb.
|
'Код для выполнения при открытии документаEnd Sub Microsoft Forms Офисные программные продукты, включая Word, Excel и PowerPoint, содержат отдельный пакет форм, который называется Microsoft Forms. Иногда, например, при использовании других приложений, эти формы могут пригодиться. Разработчики, знакомые с формами Access, не встретят никаких сложностей при использовании Microsoft Forms. Для создания формы Microsoft необходимо выполнить следующие действия. В меню редактора Visual Basic нужно выбрать пункты Insert | User Form (Вставка | Форма пользователя) или нажать клавиши Shift+F7. Для добавления элемента управления необходимо воспользоваться панелью элементов управления. В качестве ответа на использование элемента управления и события формы можно создать код VBA, кроме того, к форме можно добавить элементы управления ActiveX. СОВЕТ Формы MicrosoftForms отличаются от форм в Access, VisualBasic и Outlook. Это отдельные пакеты форм. Например, невозможно преобразовать форму Access в форму MicrosoftForm либо наоборот. Браузер объектов При работе с разными приложениями, описанными в данной статье, не следует забывать использовать браузер объектов. Подробно использование браузера объектов описано в предыдущей части. Для использования браузера объектов в редакторе Visual Basic необходимо в меню выбрать команды View | Object Browser (Вид | Браузер объектов) или нажать клавишу F2 (рис. 5). РИСУНОК 5. Браузер объектов, отображающий объекты MicrosoftWord Аргументы классов для приложений Office Для автоматизации совместно с другими приложениями необходимо знать аргументы классов:
Пример использования метода автоматизации Основные сведения по реализации автоматизации (автоматизация Word, создание или получение ссылки на Word, использование объектов Word и освобождение объекта автоматизации) приведены в предыдущей части. Приведенный ниже пример печати информации Access в отчете Word иллюстрирует все, вкратце описанные выше методы автоматизации. Не забудьте установить ссылку на Microsoft Word. Private Sub AccessApplicationReport() Dim objWord As Word.Application DoCmd.Hourglass True 'При возникновении ошибки перейти на следующую строку. On Error Resume Next 'Попытка установить ссылку на Word, который уже открыт. Set objWord = Get0bject(, "Word.Application") ' Если истинно, значит, Word не открыт. If objWord Is Nothing Then 'Запуск новой копии приложения Word. Set objWord = New Word.Application 'Если истинно, значит, MS Word 8.0 не установлен. If objWord Is Nothing Then MsgBox "MS Word 8.0 is not installed on your computer" End If End If 'При возникновении ошибки перейти к обработке ошибок '(Здесь записывается код ErrorHandler) 'Открытие нового документа Word на основе ••блока "Normal.dot". ObjWord.Documents.Add 'Активизация Word. objWord.Activate 'Отобразить Word для пользователя. objWord.Visible = True 'Создание заголовка отчета. With objWord.Selection .TypeText vbTab & vbTab & "Access Application Report" .StartOf Unit:=wdStory, Extend:=wdExtend .Font.Bold = True .Font.Size = 20 .EndKey Unit:=wdLine .TypeParagraph .TypeParagraph .Font.Bold = False .Font.Size = 16 End With 'Запись информации о данном приложении Access в документ Word. With objWord.Selection .TypeText "Application Item" & vbTab & "Value" & vbCrLf .TypeText "Database Name and Path" & vbTab & _ Application.CurrentDb.Name & vbCrLf .TypeText "Current Form Name" & vbTab & Forms.Item(0).Name & vbCrLf .TypeText "Current Active Object" & vbTab & _ Application.CurrentObjectName & vbCrLf .TypeText "Current User Name" & vbTab & Application.CurrentUser & vbCrLf .TypeText "Current Jet Version" & vbTab & _ Application.DBEngine.Version & vbCrLf .TypeText "Application Compiled" & vbTab s Application.IsCompiled & vbCrLf .TypeText "Number of References" & vbTab & Application.References.Count & vbCrLf .TypeText "Current Mouse Pointer" & vbTab & Application.Screen.MousePointer & vbCrLf .TypeText "User Control" & vbTab & Application.UserControl & vbCrLf .TypeText "Application Visible" & vbTab & Application.Visible & vbCrLf .StartOf Unit:=wdStory .MoveDown Unit:=wdLine, Count:=2 .StaxtOf Uni t:=wdLine .EndOf Unit:=wdStory, Extend:=wdExtend .ConvertToTable Separator:=wdSeparateByTabs, NumColumns:=2, _ NumRows:=11, Format:=wdTableFormatColorful2, _ ApplyBorders:=True, ApplyShading _ :=True, ApplyFont:=True, ApplyColor:=True, ApplyHeadingRows:=True, _ ApplyLastRow:=False, ApplyFirstColumn:=False, ApplyLastColumn:=False, _ AutoFit:=True, AutoFitBehavior:=wdAutoFitFixed .EndOf Unit:=wdStory End With'Отключить маркеры параграфов. objWord.ActiveWindow.ActivePane.View.ShowAll = False DoCmd.Hourglass False 'Освобождение объектной переменной. Set objWord = Nothing End SubАвтоматизация Word В данном разделе описаны способы и приведены примеры автоматизации Microsoft Word. Объектная модель Word Код, приведенный в предыдущем примере, включает все модули, необходимые для осуществления автоматизации приложения. Теперь рассмотрим имеющиеся в Word объекты, свойства и методы. Для этого очень удобно воспользоваться объектной моделью. Объектная модель — это представление (в виде схемы) объектов приложения. Объектная модель представляет собой быстрый и удобный способ определения доступности тех или иных объектов приложения для программирования, управления и манипулирования ими. СОВЕТ Диаграмма объектной модели Word приведена в файле интерактивной справки "Объекты MicrosoftWord". Объектная модель Word весьма наглядна. С помощью VBA можно манипулировать более чем 180 объектами Word. Часто используемые объекты Word приведены в табл. 1. Названия объектов, содержащих коллекции, заканчиваются на -s. Таблица 1. Объекты Word.
Использование шаблонов Word Из предыдущей части известно, что код автоматизации быстрее всего выполняется на сервере автоматизации. Другими словами, при автоматизации объектов, свойств и методов Word код VBA должен быть помещен в шаблоны Word, а не скопирован в Access. Для создания шаблона Word необходимо открыть новый документ Word. Для сохранения документа в качестве шаблона документа (с расширением .DOT) после добавления всего кода в меню следует выбрать команды File | Save As (Файл | Сохранить как). Для добавления кода в шаблон необходимо записать макрос (см. предыдущий раздел данной статьи). Следует начать запись, выполнить действия, которые должны быть автоматизированы, и код VBA будет записан. Как вызвать код VBA в Word из Access? Очень просто. Следует воспользоваться методом Run. Соответствующий код приведен ниже: 'Выполнение в Word макроса, форматирующего документ. objWord.Run "FormatDocument" Выполнение кода в Word происходит гораздо быстрее, поскольку отпадает необходимость в перекрестной связи для каждой инструкции автоматизации. Если код находится в Word, код VBA выполняется в рамках одного процесса. СОВЕТ В программном коде для данной статьи приводятся примеры, показывающие один и тот же код автоматизации в Access и в шаблоне Word. Программный таймер демонстрирует разницу в быстродействии кода. Размещение кода автоматизации в Word значительно ускоряет выполнение, Хотя код, помещенный в шаблон Word, выполняется гораздо быстрее, не станет ли он причиной появления проблем, связанных с распространением? При правильном подходе — нет. Шаблоны могут быть сохранены либо на каждой рабочей станции, либо как шаблоны рабочей группы на сервере. Преимущества сохранения шаблонов как шаблонов рабочей группы заключаются в том, что при внесении изменений в шаблон или добавлении нового шаблона достаточно скопировать изменения в общий каталог на сервере. Однако при использовании шаблонов возрастает сетевой трафик. Для устранения подобных проблем некоторые разработчики создают простые приложения, которые при их запуске копируют шаблоны с сервера на каждую рабочую станцию. Для обеспечения пользователей доступом к шаблонам рабочей группы (на сервере) необходимо выбрать в меню команды Tools | Options ( Сервис | Параметры). Во вкладке File Locations (Расположение) следует указать путь к шаблонам рабочей группы (рис. 6). РИСУНОК 6. Вкладка FileLocations в окне параметров Word. Вставка данных в документы Word Приложение Word прекрасно приспособлено для создания отчетов. Корпоративные данные могут быть представлены в документах Word, с которыми могут работать конечные пользователи. Ниже приведен пример объявления в журнале, которое включает корпоративные данные (рис. 7). РИСУНОК 7. Создание отчетов в Word. Для передачи данных из баз данных Access или SQL Server в документ Word существует три инструментальных средства: Mail Merge (Слияние), Bookmarks (Закладки), Find and Replace (Поиск и замена). Код, приведенный в данной статье, иллюстрирует все три методики. Слияние Конечные пользователи часто используют метод слияния для составления документов. Кроме того, методом слияния можно воспользоваться при автоматизации. Из трех упомянутых способов автоматизации Word слияние является самым предпочтительным способ интеграции данных. Для создания кода автоматизации слияния необходимо включить запись макроса и выполнить слияние так, как это делал бы конечный пользователь. В меню следует выбрать команды Tools j Mail Merge (Сервис | Слияние), а затем выполнить указания, отображенные в диалоговом окне помощника по слиянию. При выборе источника данных для документов слияния можно выбрать таблицу Access или запрос. Если вначале переслать данные в RTF-файл, а затем использовать данный файл в качестве источника данных, код автоматизации будет выполняться значительно быстрее. Несколько примеров такого подхода приведено в коде данной статьи. Ключевым преимуществом технологи слияния является то, что конечные пользователи могут сами вставлять поля данных в документ. В документе пользователи могут вставлять поля из панели инструментов Mail Merge. Это позволяет пользователям создавать собственные документы и освобождает разработчиков от необходимости создания отчетов. При правильном подходе к разработке для полей данных, которые могут понадобиться пользователям для создания собственных отчетов Word, можно использовать шаблоны (рис. 8). РИСУНОК 8. Пользователи могут создавать отчеты Word В файле Automation. MDB приведен код шаблона, используемый для выполнения слияния. Private Sub RunMailMerge() With ActiveDocument.MailMerga .MainDocumentType = wdFormLetters ActiveDocument.MailMerge.OpenDataSource Name:= _ "C:\Automation\Automation.MDB", ConfirmConversions:=False, _ Readonly:=False, LinkToSource:=True, AddToRecentFiles:=False, _PasswordDocument:="", PasswordTemplate:="", WritePasswordDocument:="", _WritePasswordTemplate:="", Revert:=False, Format:=wdOpenFormatAuto, _ Connection:="QUERY qryEmployeeLetters", SQLStatement:= _ "SELECT * FROM [qryEmployeeLetters]", SQLStatementI:="" .Destination = wdSendToNewDocument .Execute End With End Sub Закладки Еще один способ вставки данных в документы Word — использование Bookmarks (закладок). Закладка в документе — это указатель на место, куда впоследствии можно вставить данные. При выполнении кода рассматривается каждая закладка, и соответствующие данные вставляются в указанное место. Одним из недостатков закладок является то, что разработчики должны сами вставлять их в шаблон и создавать код (либо записывать макрос, чтобы создать код) для поиска закладок и вставки данных. Конечные пользователи не могут создавать собственные документы с данными, как при использовании метода слияния. Еще одним недостатком метода закладок можно считать тот факт, что при открытии шаблонов Word закладки явно не отображаются, а это усложняет их поиск и идентификацию. Для использования данного метода необходимо создать шаблон Word с текстом стандартного документа. В тех местах, где необходимо вставить данные, следует вставить закладки с помощью команд меню Insert Bookmark (Вставка [ Закладка). Закладке необходимо присвоить имя и щелкнуть на кнопке Add (Добавить). При переходе к закладкам и вставке текста для записи кода VBA можно использовать Macro Recorder. Код данной статьи включает пример автоматизации с помощью закладок. Код VBA приведен ниже: Selection. GoTo... . . What: =wdGoToBookmark, Name:="MyBoolcmark" Selection.TypeText "New Text" Поиск и замена При использовании данной технологии в документ вставляется текст как указатель на место, куда должны быть вставлены данные (например, {FirstName}). Код осуществляет поиск текста указателя с помощью метода Find (Найти) и заменяет его соответствующими данными. Иначе говоря, должен быть найден текст {FirstName} и заменен на "Steve". Преимущество данного метода по сравнению с закладками заключается в том, что текст указателя легко виден и более содержателен, чем закладки. Как и в случае с закладками, для создания кода VBA при выполнении поиска и замены можно воспользоваться модулем записи макроса. Пример кода поиска и замены приведен ниже. With Selection.Find .ClearFormatting .Text = "( Find Text) " .Replacement.Text = "New Text" .Forward = True .Wrap = wdFindContinue .Format = False .MatchCase = False .MatchWholeWord = False .MatchWildcards = False .MatchSoundsLike = False .MatchAllWordForms = False .Execute Replace:=wdReplaceAll End With Примеры кода автоматизации Word Следующие примеры иллюстрируют код автоматизации специфических свойств и методов объектов Word. Форматирование документов Word Возможности форматирования в Word весьма обширны. Для автоматизации создания документа можно использовать код VBA, форматирующий документ Word: 'Форматирование текста. With Selection.Font .Size = 14 .Bold = true End With 'Форматирование параграфов. With Selection.ParagraphFormat .Leftlndent = InchesToPoints(0) .Rightlndent = InchesToPoints(0) .SpaceBefore = 0 .SpaceAfter = 0 .LineSpacingRule = wdLineSpaceSingle .Alignment = wdAlignParagraphLeft .KeepWithNext = False .KeepTogether = False .PageBreakBefore = False .NoLineNumber = False .Hyphenation = True .FirstLineIndent = InchesToPoints(0) .OutlineLevel = wdOutlineLevelBodyText End With 'Установка двойного междустрочного интервала. Selection.ParagraphFormat.LineSpacingRule = wdLineSpaceDouble 'Добавление разрыва страницы. Selection.InsertBreak Type:=wdPageBreak 'Добавление разрыва раздела. Selection.InsertBreak Type:=wdSectionBreakNextPage Использование стилей документа Стиль представляет собой набор инструкций форматирования, которому можно присвоить имя и использовать в данном тексте. Стили позволяют осуществлять форматирование нескольких блоков текста или абзацев с помощью одной команды. Кроме того, стили помогают выполнить однотипное форматирование по всему документу. 'Применение стиля "Заголовок". Selection.Style = ActiveDocumnet.Styles("Headingi") 'Создание нового стиля. ActiveDocument.Styles.Add Name:="MyNewStyle", Type:=wdStyleTypeParagraph With ActiveDocument.Styles("MyNewStyle") .AutomaticallyUpdate = False .BaseStyIe = "Heading 5" End With With ActiveDocument.Styles("MyNewStyle").Font .Name = "Times New Roman" .Size = 12 .Bold = False .Italic = False .Underline = wdUnderlineSingle .StrikeThrough = False .DoubleStrikeThrough = False .Outline = False .Emboss = False .Shadow = False .Hidden = False .SmallCaps = False .AllCaps = False .Color-Index = wdAuto .Engrave = False .Superscript = False .Subscript = False .Scaling = 100 .Kerning = 0 .Animation = wdAnimationNone End With AutoCorrect Метод автоматической проверки правописания (AutoCorrect) позволяет исправлять слова, которые могут быть неправильно набраны в тексте (например, слово "teh" может быть изменено на "the"). Кроме того, этом метод можно использовать для ускорения набора текста (например, преобразовывать слово "MS" в "Microsoft"). AutoText Автотекст (AutoText) — это база данных, хранящая часто используемые текстовые и графические объекты, которые можно с легкостью вставлять в документ. Код данной статьи содержит примеры вставки текста и фотографий в документы. 'Создание автотекста. NormalTemplate.AutoTextEntries.AddName:""Microsoft", Range:=Selection.Range 'Вставка автотекста. NormalTemplate.AutoTextEntries("Microsoft").Insert Where:"Selection.Range AutoSummarize Автореферат (AutoSummarize) анализирует каждое предложение документа для создания реферата или резюме. Реферат можно отображать несколькими способами: как выделенный текст в документе, как краткий конспект в начале документа, в новом документе или собственно реферат без отображения других документов. Автореферат можно использовать даже при создании резюме для Web-страниц. 'Создание автореферата документа (резюме записывается в новый документ). ActiveDocument.AutoSummarize Length:=25, Mode:=wdSununaryModeCreateNew, _ UpdateProperties:=True Представления документа После создания документа для пользователя необходимо представить его в надлежащем виде: Normal (Обычный), Online Layout (Web-документ), Page Layout (Разметка страницы), Outline (Схема документа) или Master Document (Структура). 'Обычное представление. ActiveWindow.View.Type = wdNormalView 'Режим Web-документа. ActiveWindow.View.Type = wdOnlineView 'Режим разметки. ActiveWindow.View.Type = wdPageView 'Схема документа ActiveWindow.ActivPane.View.Type - wdOutlineView 'Режим структуры ActiveWindow.ActivePane.View.Type = wdMasterView Оглавление Ранее создание оглавления было довольно трудоемким процессом. Сегодня благодаря Word создание оглавления представляет собой в основном автоматический процесс. Хитрость заключается в использовании стилей в документе. При установке стилей на форматирование Заголовок!, Заголовок! и т.д. Word опирается на данную информацию при автоматическом создании оглавления. 'Создание оглавления. With ActiveDocument .TablesOf Contents .Add Range:^Selection.Range, RightAlignPageNuinbers :=True, _ UseHeadingStyles:=True, UpperHeadingLevel:=1, _ LowerHeadingLevel:=3, IncludePageNumbers:=True, AddedStyles:="" .TablesOfContents(1).TabLeader = wdTabLeaderDots End With Примечания Примечания помогают читателю найти и оценить вспомогательную информацию в указанном месте документа. 'Создание примечания. ActiveDocument.Footnotes.Add Range:=Selection.Range, _ Reference:=Selection, Text:="My New Footnote" Верхние колонтитулы Верхние колонтитулы отображаются в верхней части каждой страницы документа. 'Создание верхнего колонтитула. ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentpageHeader Selection.TypeText Text:="My Header" Нижние колонтитулы Нижние колонтитулы отображаются в нижней части каждой страницы документа. 'Создание нижнего колонтитула. ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentpageHeader If Selection.HeaderFooter.IsHeader = True Then ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentPageFooter Else ActiveWindow.ActivePane.View.SeekView = wdSeekCurrentpageHeader End If Selection.TypeText Text:="My Footer" Гиперссылки Гиперссылки позволяют пользователям переходить к другим частям документа, открывать совершенно другой документ и даже переходить к электронным документам в Internet. 'Создание гиперссылки на закладку в существующем документе. ActiveDocument.Hyperlinks.Add Anchor:=Selection.Range, Address:»"", SubAddress:="My Bookmark" 'Создание гиперссылки на другой документ. ActiveDocument.Hyperlinks.Add Anchor:=Selection.Range, Address:="C:\MyDoc.doc", SubAddress:="" 'Создание гиперссылки на Web-страницу. ActiveDocument.Hyperlinks.Add Anchor:=Selection.Range, Address:= _ "http://www.microsoft.com/office/", SubAddress:="" Создание таблиц Таблица содержит информацию, сгруппированную по строкам и столбцам. Word с достаточно большой степенью гибкости позволяет создавать таблицы разнообразных размеров. 'Создание таблицы. ActiveDocument.Tables.Add Range:=Selection.Range, NumRows:=3, NumColumns:=_3, Selection.Tables(1).AutoFormat, Format:=wdTableFormatClassic3, ApplyBorders:=True, ApplyShading:=True, ApplyFont:=True, _ ApplyColor:=True, ApplyHeadingRows:=True, _ ApplyLastRow:=False, ApplyFirstColumn:=True, _ ApplyLastColumn:=False, AutoFit:=False 'Вставка строк в таблицу. Selection.InsertRows 1 'Вставка столбцов в таблицу. Selection.InsertColumns Параметры страницы Диалоговое окно Page Setup (Параметры страницы) позволяет управлять размерами полей, бумаги, ориентацией, источником бумаги и создавать макет документа. Все эти установки могут быть заданы программно: 'Установка полей. With ActiveDocument.PageSetup .TopMargin = InchesToPoints(0.5) .BottomMargin = InchesToPoints(0.5) .LeftMargin = InchesToPoints(0.5) .RightMargin = InchesToPoints(0.5) End With 'Установка альбомной ориентации. ActiveDocument.PageSetup.Orientation = wdOrientLandscape Предварительный просмотр Для предварительного просмотра документа используется следующий код: 'Предварительный просмотр. ActiveDocument.PrintPreview Печать документов, конвертов и наклеек Приведенный ниже пример кода иллюстрирует печать документов, конвертов и наклеек: 'Печать всего документа. Application.Printout FileName:="", Range:=wdPrintAllDocument, _ Item:= wdPrintDocumentContent, Copies:=1, Pages:="", _ PageType:=wdPrintAllPages, Collate:=True, Background:=True, _ PrintToFile:=False 'Печать конвертов. ActiveDocument.Envelope.Printout ExtractAddress:=False, _ OmitReturnAddress :=False, PrintBarCode:=False, _ PrintFIMA:=False, Height:=InchesToPoints(4.13), _ Width:=InchesToPoints(9.5), Address:="Tom Howe", _ AutoText:= "ToolsCreateLabelsl", ReturnAddress:= _ "1001 SW Fifth Avenue, Suite 1100",ReturnAutoText:= _ "ToolsCreateLabels2", AddressFromLeft:=wdAutoPosition, _ AddressFromTop:=wdAutoPosition, ReturnAddressFromLeft:= _ wdAutoPosition, ReturnAddressFromTop:=wdAutoPosition 'Печать наклеек. Application.MailingLabel.DefaultPrintBarCode = false Application.MailingLabel.Printout Name:="2l60 Mini", _ Address : = " Tom Howe " СОВЕТ При ежедневной печати больших документов или отчетов можно воспользоваться процедурой-таймером для печати отчетов ночью, когда принтеры ничем не заняты и сетевой трафик минимален. Поля Word Поле Word — это специальный код, применяющийся для вставки специальной информации, например, номеров страниц, дат и т.п. Для вставки поля в документ в меню необходимо выбрать команды Insert | Field (Вставка | Поле). При работе с документами можно переключаться между режимами отображения текста и полей с помощью клавиш AH+F9. Поля можно обновлять вручную с помощью клавиши F9 либо автоматически при печати документа. Некоторые часто используемые поля Word описаны в табл. 2. Таблица 2. Поля Word.
При работе с кодами полей можно воспользоваться следующими сочетаниями клавиш:
Сводная информация о документе При создании и сохранении нового документа для осуществления последующего поиска необходимо сохранить информацию о документе. Информация, идентифицирующая документ, содержится в диалоговом окне Properties (Свойства) документа (рис. 9). К свойствам каждого документа относятся: • Название документа • Размер документа • Дата и время создания • Дата и время последней модификации • Шаблон, на котором основан документ • Ключевые слова для идентификации документа • Местонахождение документа • Имя автора • Имя руководителя • Название компании • Категория • Комментарии • Статистические сведения для данного документа • Информация о содержании Кроме того, можно даже создавать собственные свойства, соответствующие специфическим требованиям данной организации. (См. закладку Custom (Пользовательский) в диалоговом окне свойств.) РИСУНОК 9. Сводная информация о документе Word. Другие возможности Word Word включает множество расширенных возможностей для создания различных документов, таких как: • Многоколоночная разметка • Возможность импорта графики из других приложений • Встроенные шрифты TrueType • Границы и заливка • Фон и текстура • Word Art • Разнообразные средства рисования Автоматизация Excel В данном разделе описаны специфические приемы автоматизации Microsoft Excel и приведены соответствующие примеры. Объектная модель Excel В Excel существует более 140 объектов, которыми можно манипулировать с помощью VBA. СОВЕТ Полная диаграмма объектной модели Excel приведена в файле интерактивной справки "Объекты Microsoft Excel". В табл. 3 описаны наиболее часто используемые объекты Excel. Названия объектов, содержащих коллекции, заканчиваются на -s. Таблица 3. Объекты Excel.
Примеры кода автоматизации Excel Приведенные ниже примеры представляют собой код, необходимый для автоматизации специфических свойств и методов объектов Excel. Форматирование документов Excel Excel предлагает обширные возможности форматирования. Следующие примеры иллюстрируют форматирование заголовков столбцов и данных в столбцах, а также вызов метода AutoFit. 'Форматирование заголовков столбцов. With objWoricSheet 'Bold column headings. .Cells(l, 1).Font.Bold = True .Cells(l, 2).Font.Bold = True End With 'Форматирование данных в рабочем листе. With objWorkSheet.Columns With .Item (2) .NumberFonnat = "0.00" .AutoFit End With 'Использование метода "AutoFit" для форматирования данных. .Item(l) .AutoFit End With Создание диаграмм Для быстрого создания кода автоматизации можно воспользоваться модулем Macro Recorder (Запись макроса). Мастер диаграмм поможет осуществить выбор необходимой диаграммы. Приведенный ниже код автоматизации создает различные типы диаграмм: 'Создание круговой диаграммы. objChart.ChartWizard Source:=objSheet.Cells(1, 1) . CurrentRegion, _ Gallery :=xlPie, Format: =4, PlotBy:=xlColun>ns, _ CategoryLabels:=l, SeriesLabels:=1, HasLegend:=2, _ Title:="Product Sales (Pie Chart)" 'Создание гистограммы. With ObjChart.ActiveChart .ChartType = xlColumnClustered .SetSourceData Source:=_ Sheets("Top 5 Product Sales").Range("Al:B6"), _ PlotBy:=xlColumns End With 'Создание кольцевой диаграммы. With ObjChart.ActiveChart .ChartType = xlDoughnut .SetSourceData Source:= _ Sheets("Top 5 Product Sales").Range("Al:B6") , _ PlotBy:=xlColumns .Location Where: = xlLocationAsNewSheet, Name :=" Doughnut Graph" .HasLegend = True .ChartTitle.Characters.Text = "Product Sales (Doughnut Chart)” End With Код автоматизации создает диаграммы в Excel (рис. 10). РИСУНОК 10. Создание диаграмм в Excel. Использование свойства Parent Excel включает объект приложения и объект рабочей книги. Доступ ко всем другим объектам можно получить, используя свойства данных объектов верхнего уровня. В общем случае код автоматизации начинает работу с объектов верхнего уровня, а затем спускается вниз в соответствии с иерархией. В Excel код может начинать работу с объекта приложения, переходить к объекту рабочей книги, а затем спускаться вниз в соответствии с иерархией к рабочим листам и ячейкам. При открытии объекта в иерархии объектов приложения можно двигаться по иерархии в обоих направлениях. Для перехода вверх по ступеням иерархии необходимо использовать свойство Parent. Например, при работе с данным рабочим листом можно получить доступ к рабочей книге с помощью свойства Parent. Соответствующий код приведен ниже: Private Sub ParentPropertyDemo() Dim objExcel As Excel.Application Dim objWorkBook as Excel.WorkBook 'Запуск новой копии приложения Excel. Set objExcel = New Excel.Application 'Открытие новой рабочей книги Excel. 'Необходимо проверить путь к файлу из кода данной главы. objExcel.Workbooks.Open _ ("С:\Automation\Sales by Country Data.xis") 'Установка objWorkBook в активную рабочую книгу. Set objWorkBook = objExcel.ActiveWorkBook 'Получение имени objWorkBook ("Sales by Country"). MsgBox objWorkBook.Name 'Получение имени объекта приложения с помощью 'свойства Parent ("Microsoft Excel"). MsgBox objworkBook.Parent.Name 'Максимизация окна. objExcel.WindowState = xlMaximized 'Отображение документа Excel для пользователя. objEcxel-Visible = True 'Использование метода Quit для прекращения работы Excel. ObjExcel.Quit 'Освобождение объектной переменной. Set objExcel = Nothing End Sub В приведенном примере открывается рабочая книга. С помощью свойства Parent объекта рабочей книги происходит обращение к объекту приложения Excel вверх по ступеням иерархии объектов. Автоматизация PowerPoint В данном разделе описаны специальные приемы автоматизации Microsoft PowerPoint. Приведены соответствующие примеры. Объектная модель PowerPoint Существует более 85 объектов PowerPoint, которыми можно манипулировать с помощью VBA. СОВЕТ Диаграмма объектной модели PowerPoint приведена в файле интерактивной справки "Объекты MicrosoftPowerPoint". Наиболее часто используемые объекты PowerPoint описаны в табл. 4. Названия объектов, содержащих коллекции, заканчиваются на -s. Таблица 4. Объекты PowerPoint.
Примеры кода автоматизации PowerPoint Приведенные ниже примеры иллюстрируют код автоматизации специфических свойств и методов объектов PowerPoint (рис. 11). РИСУНОК 11. Презентация PowerPoint, созданная с помощью метода автоматизации Добавление слайдов PowerPoint Для добавления слайдов PowerPoint к презентации используется метод Add: 'Добавление слайда. Set ppPres = objPP.Presentations.Add Добавление эффектов перехода Приведенный код добавляет эффект перехода к слайду: 'Добавление эффекта перехода к слайду. ObjPresentation.Slides(5).SlideShowTransition.EntryEffect = _ ppEffectFade Добавление данных и форматирование слайдов Следующий код добавляет данные и форматирует слайд: With objPresentation.Slides(5).Shapes(1) .TextFrame.TextRange.Text = "Sales Totals" .Shapes(1).TextFrame.TextRange.Characters.Font.Size = 80 End With With objPresentation.Shapes(2).TextFrame.TextRange .Text = Chr$(CharCode:=13) + "Board Of Director Meeting" _ + Chr$(CharCode:=13) + "Sales Summary Information" .Characters.Font.Color.RGB = RGB(0, 0, 255) .Characters.Font.Shadow = True End With With objPresentation.Shapes("Rectangle 3").TextFrame.TextRange. _ Characters(l, 53).Font .Size = 36 .Color.SchemeColor = ppFill End With End With Добавление фотографии к фигуре на слайде Приведенный ниже код добавляет фотографию и форматирует слайд: Dim strFileMame as String strFileName = ADOrs!Photos objPresentation.Shapes.AddPicture(FileName:=strFileName, _ LinkToFile:=msoFalse, SaveWithDocument:=msoTrue, _ Left:=110, Top:=260, Width:=250, Height:=250).Select Запуск презентации PowerPoint Данный код запускает презентацию PowerPoint: |