Вконтакте Facebook Twitter Лента RSS

Автоматизация составления документов в ms excel. Реферат: Автоматизация работы пользователя в среде MS Office. Перемещение по большому документу


Настоящая статья посвящена теме, может быть, и не новой, но, как показывают письма читателей, по-прежнему актуальной - автоматизации приложений Microsoft Office. Многие разработчики в процессе работы над своими проектами (неважно, с помощью какого средства разработки - Delphi, C++Builder, Visual Basic:) нередко применяют сервисы, предоставляемые Microsoft Office, например построение сводных таблиц и диаграмм с помощью Microsoft Excel, генерацию и печать документов с помощью Microsoft Word и т.д. Нередко пользователи, привыкшие использовать приложения Microsoft Office в повседневной работе, сами настаивают на применении в приложениях таких сервисов либо просто на сохранении отчетов и других документов в одном из форматов Microsoft Office. Отметим, что потенциальные пожелания подобного рода компанией Microsoft учтены достаточно давно - практически все, что в состоянии сделать пользователь любого приложения Microsoft Office с помощью меню, клавиатуры и инструментальной панели, может быть произведено и автоматически, то есть либо из VBA-программы, либо из приложения, созданного с помощью одного из средств разработки. Иными словами, приложения Microsoft Office являются программируемыми. Программируемость в общем случае означает возможность управления данным приложением с помощью макроязыков либо с помощью других приложений. Все компоненты Microsoft Office поддерживают один и тот же макроязык: Visual Basic for Applications (VBA), позволяющий создавать приложения непосредственно внутри документов Office (это называется <решения на базе Microsoft Office>). Управление же компонентами Office из других приложений осуществляется с помощью автоматизации (Automation, ранее - OLE Automation) - все приложения Microsoft Office являются серверами автоматизации (или COM-серверами). Для создания таких приложений пригодны любые средства разработки, позволяющие создавать контроллеры автоматизации (COM-клиенты). Наиболее часто для этой цели используется Visual Basic, но это могут быть и Delphi, и C++Builder, и Visual C++. Однако прежде чем обсуждать возможности тех или иных средств разработки, следует разобраться, что такое автоматизация.

Коротко об автоматизации

Автоматизация - это одна из возможностей, предоставляемых технологией Microsoft COM (Component Object Model). Не вдаваясь в подробности реализации этой технологии, заметим, что она используется приложениями (называемыми COM-серверами) для предоставления доступа к их объектам, а также к свойствам и методам этих объектов другим приложениям (называемым COM-клиентами), каковыми могут быть и средства разработки. Например, текстовый процессор, будучи COM-сервером, может предоставлять другим приложениям доступ к документу, абзацу, закладке с помощью соответствующих объектов. Для именования (и опознания) COM-серверов обычно используются специальные строковые обозначения - программные идентификаторы (Programmatic Identifier, ProgID). Они нужны для того, чтобы операционная система могла с помощью этих идентификаторов определить, в каком именно каталоге (или на каком компьютере локальной сети, если используется тот или иной способ удаленного доступа к серверу) расположен исполняемый файл сервера автоматизации, и запустить его на выполнение. О том, какие именно программные идентификаторы применяются для того или иного приложения Microsoft Office, будет сказано в разделах, посвященных этим приложениям.

Объекты автоматизации с точки зрения программирования мало чем отличаются от обычных объектов, знакомых нам из теории и практики объектно-ориентированного программирования. Как и обычные объекты, они обладают свойствами и методами. Свойство - это характеристика объекта; например, свойством абзаца (объект Paragraph) может быть его стиль (Style). Методом называется действие, которое можно выполнить с объектом (например, можно сохранить документ с помощью метода SaveAs объекта Document).

Нередко серверы автоматизации содержат наборы однотипных объектов, называемых коллекциями. Например, текстовый процессор может содержать коллекцию документов, а каждый документ - коллекцию абзацев.

Как узнать, какие объекты доступны в серверах автоматизации? Для этой цели в комплект поставки любого сервера автоматизации входит документация и файлы справки, описывающие их объектную модель. Если брать приложения Microsoft Office 2000, то это справочные файлы для программистов на Visual Basic for Applications VBAxxx9.CHM (для Microsoft Office 97 - VBxxx8.HLP соответственно). Отметим, что по умолчанию они не устанавливаются, так как нужны разработчикам, а не рядовым пользователям.

Вся информация об объектах, необходимая контроллерам автоматизации, содержится в библиотеках типов. Библиотеки типов хранятся в специальном бинарном формате и обычно представлены в виде файлов с расширениями *.olb или *.tlb, а также могут содержаться внутри исполняемых файлов (*.exe) или динамически загружаемых библиотек (*.dll). Библиотеки типов можно просматривать с помощью утилиты OleView, входящей в состав Microsoft Platform SDK, а средства разработки фирмы Borland содержат свои собственные утилиты просмотра библиотек типов.

Заканчивая это более чем краткое введение в автоматизацию, остановимся также на понятии связывания. Связыванием называется способ, с помощью которого переменная или класс приложения-контроллера ссылается на объект автоматизации. Таких способов существуют два: позднее связывание и раннее связывание.

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

Раннее связывание означает, что реальная ссылка на объект автоматизации появляется уже на этапе компиляции. Поэтому в коде приложения-контроллера требуется ссылка на библиотеку типов (или на специальный модуль, являющийся интерфейсом к ней), и это приводит к генерации в этом приложении классов с теми же свойствами и методами, что и у объектов автоматизации, что делает возможными синтаксическую проверку имен методов на этапе компиляции и доступ к именованным константам, содержащимся в библиотеке типов. Отметим, однако, что далеко не все средства разработки, поддерживающие позднее связывание, осуществляют также поддержку раннего связывания.

Закончив экскурс в COM и автоматизацию, вернемся к вопросу о том, какие средства разработки удобно применять для создания контроллеров автоматизации.

VBA и средства разработки контроллеров автоматизации

Как уже было сказано выше, контроллеры автоматизации можно создавать с помощью различных средств разработки, и если вы уже используете какое-либо из инструментальных средств, поддерживающих создание контролеров автоматизации, можно именно им и воспользоваться. Единственное, что следует сделать - это узнать, поддерживается ли вашим средством разработки ранее связывание, если вы планируете его использовать. Примеры простейших контроллеров автоматизации (как правило, для Microsoft Word или Microsoft Excel), дающие представление о том, как вызываются методы сервера, обычно можно найти в комплекте поставки большинства современных средств разработки.

Освоение объектной модели автоматизируемого сервера можно начать с записи необходимой последовательности действий в виде макроса с помощью VBА. Создать макрос можно, выбрав из меню приложения Microsoft Office пункт Tools | Macro |Record New Macro. Просмотр полученного макроса в редакторе кода VBA обычно позволяет понять, как должен выглядеть код, реализующий эту последовательность действий.

Обсудив возможные средства разработки контроллеров автоматизации, можно наконец перейти к самим приложениям Microsoft Office, к их объектным моделям и к их использованию. В качестве средства разработки для приведенных ниже примеров используется Borland Delphi 5, но поскольку в них приводится последовательность вызова свойств и методов объектов Microsoft Office, перенос кода на другие языки программирования не должен вызвать особых затруднений. Если специально не оговорено, в данной статье во всех примерах используется раннее связывание.

Объектные модели Microsoft Office

Как было сказано выше, приложения Microsoft Office предоставляют контроллерам автоматизации доступ к своей функциональности с помощью своей объектной модели, представляющей собой иерархию объектов. Объекты могут предоставлять доступ к другим объектам посредством коллекций.

В качестве иллюстрации того, как выглядит иерархия объектов Microsoft Office, приведем небольшой фрагмент объектной модели Microsoft Word (рис.1):

В объектных моделях (рис.2)

всех приложений Microsoft Office всегда имеется самый главный объект, доступный приложению-контроллеру и представляющий само автоматизируемое приложение. Для всех приложений Microsoft Office он называется Application, и многие его свойства и методы для всех этих приложений также одинаковы. Наиболее часто мы будем использовать следующие из них:

  1. Свойство Visible (доступное для объекта Application всех приложений Microsoft Office) позволяет приложению появиться на экране и в панели задач; оно принимает значения True (пользовательский интерфейс приложения доступен) или False (пользовательский интерфейс приложения недоступен; это значение устанавливается по умолчанию). Если вам нужно сделать что-то с документом Office в фоновом режиме, не информируя об этом пользователя, можно не обращаться к этому свойству - в этом случае приложение можно будет найти только в списке процессов с помощью приложения Task Manager.
  2. Метод Quit закрывает приложение Office. В зависимости от того, какое приложение Office автоматизируется, он может иметь параметры или не иметь таковых.

Общие принципы создания контроллеров автоматизации

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

  1. Проверить, запущена ли копия приложения-сервера.
  2. В зависимости от результатов проверки запустить копию автоматизируемого приложения Office либо подключиться к уже имеющейся копии.
  3. Сделать окно приложения-сервера видимым (в общем случае это не обязательно).
  4. Выполнить какие-то действия с приложением-сервером (например, создать или открыть документы, изменить их данные, сохранить документы и пр.)
  5. Закрыть приложение-сервер, если его копия была запущена данным контроллером, или отключиться от него, если контроллер подключился к уже имеющейся копии.

Соответствующий код для Delphi представлен в листинге 1 .

Здесь мы воспользовались функциями GetActiveOleObject и CreateOleObject для подключения к уже запущенной копии приложения-сервера или запуска новой, если сервер не запущен, что приводит к тому, что в вариантную переменную помещается ссылка на объект Application соответствующего сервера.

Приведенная часть кода контроллера в других средствах разработки может выглядеть по-другому - она не имеет прямого отношения к методам объектов Office, так как обусловлена правилами вызова стандартных функций OLE в Delphi (за исключением вызовов методов Visible и Quit объекта Application). А вот все то, что должно быть вставлено вместо комментария <Здесь выполняются другие действия с объектами приложения Office>, в разных средствах разработки должно выглядеть более или менее однотипно - используя созданную вариантную переменную, мы манипулируем методами и свойствами объекта Application.

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

несмотря на то что метод Quit объекта Application в случае некоторых приложений Microsoft Office (например, Microsoft Word) имеет параметры.

При использовании же раннего связывания, например при создании контроллеров с помощью Delphi, следует более строго подходить к определению параметров - их число и тип должны соответствовать описанию методов в библиотеке типов. Например, в случае раннего связывания корректный код на Delphi для закрытия документа Word со значениями всех параметров по умолчанию будет иметь вид:

App.Quit(EmptyParam, EmptyParam, EmptyParam);

Исключением из этого правила является Visual Basic - это средство разработки позволяет не задумываться о числе параметров методов при написании кода.

Обсудив общие принципы создания контроллеров автоматизации и узнав, как это делается средствами Borland Delphi, мы можем перейти к рассмотрению автоматизации конкретных приложений Microsoft Office. Начнем с одного из самого популярных компонентов этого пакета - с Microsoft Word.

Программные идентификаторы и объектная модель Microsoft Word

Для приложения-контроллера доступны непосредственно следующие объекты:

Все остальные объекты Word являются так называемыми внутренними объектами. Это означает, что они не могут быть созданы сами по себе; так, объект Paragraph (абзац) не может быть создан отдельно от содержащего его документа.

Если вспомнить, что основное назначение Word - работа с документами, можно легко понять иерархию его объектной модели (фрагмент ее был показан на рис. 1). Основным объектом в ней, как иво всех других приложениях Microsoft Office, является объект Application, содержащий коллекцию Documents объектов типа Document. Каждый объект типа Document содержит коллекцию Paragraphs объектов типа Paragraph, Bookmarks типа Bookmark, Characters типа Character и т.д. Манипуляция документами, абзацами, символами, закладками реально осуществляется путем обращения к свойствам и методам этих объектов.

Ниже мы рассмотрим наиболее часто встречающиеся задачи, связанные с автоматизацией Microsoft Word. Если же вам встретилась задача, не совпадающая ни с одной из перечисленных, вы можете попытаться найти подходящий пример на Visual Basic в справочном файле VBAWRD9.CHM, либо, как уже было сказано выше, записать необходимую последовательность действий в виде макроса и проанализировать его код.

Создание и открытие документов Microsoft Word

Для создания примеров использования Microsoft Word можно использовать код создания контроллера, приведенный выше, и модифицировать его, заменяя комментарии кодом, манипулирующим свойствами и методами объекта Word.Application. Мы начнем с создания и открытия документов.

Создать новый документ Word можно, используя метод Add коллекции Documents объекта Application:

App.Documents.Add;

Как создать нестандартный документ? Очень просто - нужно указать имя шаблона в качестве параметра метода Add:

App.Documents.Add("C:\Program Files\ _ Microsoft Office\Templates\1033\Manual.dot");

Для открытия уже существующего документа следует воспользоваться методом Open коллекции Documents:

App.Documents.Open("C:\MyWordFile.doc");

Отметим, что свойство ActiveDocument объекта Word.Application указывает на текущий активный документ среди одного или нескольких открытых. Помимо этого к документу можно обращаться по его порядковому номеру с помощью метода Item; например ко второму открытому документу можно обратиться так:

App.Documents.Item(2)

Отметим, что нумерация членов коллекций в Microsoft Office начинается с единицы.

Сделать документ активным можно с помощью метода Activate:

App.Documents.Item(1).Activate;

Следующее, чему следует научиться - это сохранять документ Word и закрывать сам Word.

Сохранение, печать и закрытие документов Microsoft Word

App.Documents.Item(2).Close;

App.ActiveDocument.Close ;

Метод Close имеет несколько необязательных (в случае позднего связывания) параметра, влияющих на правила сохранения документа. Первый из них влияет на то, сохраняются ли внесенные в документ изменения, и принимает три возможных значения (соответствующие константы рекомендуется описать в приложении. См. листинг 2):

Третий параметр принимает значения True или False и влияет на то, пересылать ли документ следующему пользователю по электронной почте. Если эта функциональность не применяется, можно проигнорировать этот параметр.

Таким образом, при использовании этих параметров закрыть документ можно, например, так:

App.ActiveDocument.Close(wdSaveChanges, _ wdPromptUser) ;

App.ActiveDocument.Save;

Этот метод также имеет несколько необязательных (в случае позднего связывания) параметров, первый из которых равен True, если документ сохраняется автоматически, и False, если нужно выводить диалоговую панель для получения подтверждения пользователя о сохранении изменений (если таковые были сделаны). Второй параметр влияет на формат сохраняемого документа, и список его возможных значений совпадает со списком значений второго параметра метода Close.

Напоминаем, что закрыть сам Word можно с помощью метода Quit объекта Word.Application. Этот метод имеет в общем случае три параметра, совпадающих с параметрами метода Close объекта Document.

Вывод документа на устройство печати можно осуществить с помощью метода PrintOut объекта Document, например:

App.ActiveDocument.PrintOut;

Если нужно изменить параметры печати, следует указать значения соответствующих параметров метода PrintOut (в случае Microsoft Word их около двадцати).

Вставка текста и объектовв документ и форматирование текста

Для создания абзацев в документе можно использовать коллекцию Paragraphs объекта Document, представляющую набор абзацев данного документа. Добавить новый абзац можно с помощью метода Add этой коллекции:

App.ActiveDocument.Paragraphs.Add;

Для вставки собственно текста в документ, тем не менее, применяется не объект Paragraph, а объект Range, представляющий любую непрерывную часть документа (в том числе и вновь созданный абзац). Этот объект может быть создан разными способами. Например, можно указать начальный и конечный символы диапазона (если таковые имеются в документе):

Var Rng: Variant; ... Rng:= App.ActiveDocument.Range(2,4); //со 2-го по 4-й символы

или указать номер абзаца (например, только что созданного):

Rng:= App.ActiveDocument.Paragraphs.Item(1).Range;

или указать несколько абзацев, следующих подряд:

Rng:= App.ActiveDocument.Range _ (App.ActiveDocument.Paragraphs.Item(3).Range.Start,_ App.ActiveDocument.Paragraphs.Item(5).Range.End)

Вставить текст можно с помощью методов объекта Range InsertBefore (перед диапазоном) или InsertAfter (после диапазона), например:

Rng.InsertAfter("Это вставляемый текст");

Помимо объекта Range текст можно вставлять с помощью объекта Selection, являющийся свойством объекта Word.Application и представляющий собой выделенную часть документа (этот объект создается, если пользователь выделяет часть документа с помощью мыши, и может быть также создан с помощью приложения-контроллера). Сам объект Selection можно создать, применив метод Select к объекту Range, например:

Var Sel: Variant; ... App.ActiveDocument.Paragraphs.Item(3).Range.Select;

В приведенном выше примере в текущем документе выделяется третий абзац.

Если мы хотим вставить строку текста в документ либо вместо выделенного фрагмента текста, либо перед ним, это можно сделать с помощью следующего фрагмента кода:

Var Sel: Variant; ... Sel:= App.Selection; Sel.TypeText("Это текст, которым мы заменим _ выделенный фрагмент");

Отметим, что если свойство Options.ReplaceSelection объекта Word.Application равно True, выделенный текст будет заменен на новый текст (этот режим действует по умолчанию); если же нужно, чтобы текст был вставлен перед выделенным фрагментом, а не вместо него, следует установить это свойство равным False:

App.Options.ReplaceSelection:= False;

Символ конца абзаца при использовании объекта Selection может быть вставлен с помощью следующего фрагмента кода:

Sel.TypeParagraph;

К объекту Selection, так же как и к объекту Range, можно применить методы InsertBefore и InsertAfter. В этом случае, в отличие от предыдущего, вставляемый текст станет частью выделенного фрагмента текста.

С помощью объекта Selection, используя его свойство Font и свойства объекта Font, такие как Bold, Italic, Size,:, можно отформатировать текст. Например, таким образом можно вставить строку, выделенную жирным шрифтом:

Sel.Font.Bold:= True; Sel.TypeText("Это текст, который мы выделим _ жирным шрифтом."); Sel.Font.Bold:= False; Sel.TypeParagraph;

Для наложения на вставляемый текст определенного заранее стиля можно использовать свойство Style этого же объекта, например:

Sel.Style:= "Heading 1"; Sel.TypeText("Это текст, который станет _ заголовком"); Sel.TypeParagraph;

Нередко документы Word содержат данные других приложений. Простейший способ вставить такие данные в документ - использовать метод Paste объекта Range:

Var Rng: Variant; ... Rng:= App.Selection.Range; Rng.Collapse(wdCollapseEnd); Rng.Paste;

Естественно, в этом случае в буфере обмена уже должны содержаться вставляемые данные.

Если нужно поместить в буфер обмена часть документа Word, это можно сделать с помощью метода Copy объекта Range:

Var Rng: Variant; ... Rng:= App.Selection.Range; Rng.Copy;

Следующее, чему нужно научиться - перемещению курсора в нужное место текста, чем мы и займемся в следующем разделе.

Перемещение курсора по тексту

Используя метод Collapse, можно <сжать> объект Range или объект Selection, сократив его размер до нуля символов:

Rng.Collapse(wdCollapseEnd);

Параметр этого метода указывает, в начале или в конце исходного фрагмента окажется новый объект Range или Selection. Если вы используете позднее связывание и ваше средство разработки - не Visual Basic, нужно определить в приложении соответствующие константы:

Const wdCollapseStart = $00000001; //новый объект находится в начале фрагмента wdCollapseEnd = $00000000; //новый объект находится в конце фрагмента

Перемещать курсор по тексту можно с помощью метода Move объектов Range и Selection. Этот метод имеет два параметра. Первый указывает на то, в каких единицах измеряется перемещение - в символах (по умолчанию), словах, предложениях, абзацах и др. Второй параметр указывает, на сколько единиц при этом нужно переместиться (это число может быть и отрицательным; по умолчанию оно равно 1). Например, следующий фрагмент кода:

Rng.Move;

приведет к перемещению курсора на один символ вперед, а

Rng.Move(wdParagraph,3);

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

Const //Единицей перемещения является: wdCharacter = $00000001; //символ wdWord = $00000002; //слово wdSentence = $00000003; //предложение wdParagraph = $00000004; //абзац wdStory = $00000006; //часть документа //напр., колонтитул, //оглавление и др.) wdSection = $00000008; //раздел wdColumn = $00000009; //колонка таблицы wdRow = $0000000A; //строка таблицы wdCell = $0000000C; //ячейка таблицы wdTable = $0000000F; //таблица

Нередко для перемещения по тексту используются закладки. Создать закладку в текущей позиции курсора можно путем добавления члена коллекции Bookmarks объекта Document c помощью метода Add, указав имя закладки в качестве параметра, например:

App.ActiveDocument.Bookmarks.Add("MyBookmark");

Проверить существование закладки в документе можно с помощью метода Exists, а переместиться на нее - с помощью метода Goto объектов Document, Range или Selection:

Rng:= App.ActiveDocument.Goto(wdGoToBookmark, wdGoToNext,"MyBookmark"); Rng.InsertAfter("Текст, вставленный после закладки");

Значения констант для этого примера таковы:

WdGoToBookmark = $FFFFFFFF; //перейти к закладке wdGoToNext = $00000002; //искать следующий объект в тексте

Отметим, что с помощью метода Goto можно перемещаться не только на указанную закладку, но и на другие объекты (рисунки, грамматические ошибки и др.), и направление перемещения тоже может быть различным. Поэтому список констант, которые могут быть использованы в качестве параметров данного метода, довольно велик.

Создание таблиц

Создавать таблицы можно двумя способами. Первый заключается в вызове метода Add коллекции Tables объекта Document и последовательном заполнении ячеек данными. Этот способ при позднем связывании работает довольно медленно.

Второй способ, намного более <быстрый>, заключается в создании текста из нескольких строк, содержащих подстроки с разделителями (в качестве разделителя можно использовать любой или почти любой символ, нужно только, чтобы он заведомо не встречался в данных, которые будут помещены в будущую таблицу), и последующей конвертации такого текста в таблицу с помощью метода ConvertToTable объекта Range. Ниже приведен пример создания таблицы из трех строк и трех столбцов этим способом (в качеcтве разделителя, являющегося первым параметром метода ConvertToTable, используется запятая):

Var Rng: Variant; ... Rng:= App.Selection.Range; Rng.Collapse(wdCollapseEnd); Rng.InsertAfter("1, 2, 3"); Rng.InsertParagraphAfter; Rng.InsertAfter("4,5,6"); Rng.InsertParagraphAfter; Rng.InsertAfter("7,8,9"); Rng.InsertParagraphAfter; Rng.ConvertToTable(",");

Отметим, что внешний вид таблицы можно изменить с помощью свойства Format, а также с помощью свойств коллекции Columns, представляющей колонки таблицы, и коллекции Rows, представляющей строки таблицы объекта Table.

Обращение к свойствам документа

Свойства документа можно получить с помощью коллекции BuiltInDocumentProperties объекта Document, например:

Memo1.Lines.Add("Название - " + _ App.ActiveDocument.BuiltInDocumentProperties .Value); Memo1.Lines.Add("Автор - " + _ App.ActiveDocument.BuiltInDocumentProperties . _ Value); Memo1.Lines.Add("Шаблон - " + _ App.ActiveDocument.BuiltInDocumentProperties . _Value)

Константы, необходимые для обращения к свойствам документа по имени, приведены в листинге 3 .

Итак, в данном разделе мы изучили основные операции, которые наиболее часто применяются при автоматизации Microsoft Word. Естественно, возможности автоматизации Word далеко не исчерпываются приведенными примерами, однако я надеюсь, что, руководствуясь основными принципами создания контроллеров Word, изложенными в данной статье, и соответствующим справочным файлом, вы сможете ими воспользоваться - мы с вами уже убедились, что это вовсе не так сложно.

Существует три типа объектов Excel, которые могут быть созданы непосредственно с помощью приложения-контроллера. Эти объекты и соответствующие им программные идентификаторы перечислены ниже.

Все остальные объекты Excel являются так называемыми внутренними объектами.

Небольшой фрагмент объектной модели Microsoft Excel изображен на рис.2:

Основным в объектной модели Excel является объект Application, содержащий коллекцию Workbooks объектов типа WorkBook. Каждый объект типа WorkBook содержит коллекцию WorkSheets-объектов типа WorkSheet, Charts типа Chart и др. Манипуляция рабочими книгами, их листами, ячейками, диаграммами реально осуществляется путем обращения к свойствам и методам этих объектов.

Ниже мы рассмотрим наиболее часто встречающиеся задачи, связанные с автоматизацией Microsoft Excel. Если вам встретилась задача, не совпадающая ни с одной из перечисленных, вы можете попытаться найти подходящий пример на Visual Basic в справочном файле VBAXL9.CHM, либо, как и в случае Microsoft Word, записать соответствующий макрос и проанализировать его код.

Запуск Microsoft Excel, создание и открытие рабочих книг

Для создания примеров использования Microsoft Excel можно использовать код создания контроллера, приведенный в разделе <Общие принципы создания контроллеров автоматизации>, заменив первый оператор в приведенном примере на следующий:

AppProgID:= "Excel.Application";

и заменить комментарии кодом, манипулирующим свойствами и методами объекта Excel.Application. Отметим, однако, что подключение контроллера автоматизации к имеющейся версии Excel с помощью метода GetActiveOleObject может привести к тому, что вся клиентская часть Excel окажется невидимой (это происходит, если имеющаяся копия Excel запущена в режиме, когда ее пользовательский интерфейс недоступен). Причины подобного поведения автору неизвестны. Поэтому, если существует вероятность возникновения подобной ситуации, лучше упростить код создания контроллера и всегда создавать новую копию Excel.

Изучение создания контроллеров Excel мы начнем с создания и открытия рабочих книг.

Создать новую рабочую книгу Excel можно, используя метод Add коллекции Workbooks объекта Application:

App.WorkBooks.Add;

Для создания рабочей книги на основе шаблона следует указать его имя в качестве первого параметра метода Add:

App.WorkBooks.Add("C:\Program Files\Microsoft _ Office\Templates\1033\invoice.xlt");

В качестве первого параметра этого метода можно также использовать следующие константы:

Const xlWBATChart = $FFFFEFF3; //рабочая книга состоит из листа с диаграммой xlWBATWorksheet = $FFFFEFB9; //рабочая книга состоит из листа с данными

В этом случае рабочая книга будет содержать один лист типа, заданного указанной константой (график, обычный лист с данными и др.)

Для открытия уже существующего документа следует воспользоваться методом Open коллекции WorkBooks:

App.Documents.Open("C:\MyExcelFile.xls");

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

App.WorkBooks

Обратите внимание на то, что в Delphi при использовании позднего связывания синтаксис, используемый для обращения к членам коллекций объектов Excel, отличен от синтаксиса, используемого для обращения к объектам Word - в случае Word мы использовали метод Item, а в случае Excel мы обращаемся к членам коллекции как к элементам массива. Если же вы используете Visual Basic, синтаксис, применяемый для обращения к членам коллекций, будет одинаков для всех коллекций Microsoft Office.

Сделать рабочую книгу активной можно с помощью метода Activate:

App.WorkBooks.Activate;

Следующее, чему следует научиться - это сохранять рабочие книги в файлах.

Сохранение, печать и закрытие рабочих книг Microsoft Excel

Закрытие документа может быть осуществлено с помощью метода Close:

App.WorkBooks.Close;

App.ActiveWorkBook.Close;

Метод Close имеет несколько необязательных (в случае позднего связывания) параметров, влияющих на правила сохранения рабочей книги. Первый из параметров принимает значения True или False и влияет на то, сохранять ли изменения, внесенные в рабочую книгу. Второй параметр (типа Variant) - имя файла, в котором нужно сохранить рабочую книгу (если в нее были внесены изменения). Третий параметр, также принимающий значения True или False, влияет на то, следует ли пересылать документ следующему пользователю по электронной почте, и может быть проигнорирован, если эта функциональность не используется.

App.ActiveWorkBook.Close(True,"C:\MyWorkBook.xls");

App.ActiveWorkBook.Save;

App.ActiveWorkBook.SaveAs("C:\MyWorkBook.xls");

Метод SaveAs имеет более десятка параметров, влияющих на то, как именно сохраняется документ (под каким именем, с паролем или без него, какова кодовая страница для содержащегося в ней текста и др.).

Закрыть сам Excel можно с помощью метода Quit объекта Excel.Application. В случае Excel этот метод параметров не имеет.

Вывод документа Excel на устройство печати можно осуществить с помощью метода PrintOut объекта WorkBook, например:

App.ActiveWorkBook.PrintOut;

Если нужно изменить параметры печати, следует указать значения соответствующих параметров метода PrintOut (в случае Excel их восемь).

Обращение к листам и ячейкам

Обращение к листам рабочей книги производится с помощью коллекции WorkSheets объекта WorkBook. Каждый член этой коллекции представляет собой объект WorkSheet. К члену этой коллекции можно обратиться по его порядковому номеру, например:

App.WorkBooks.WorkSheets.Name:= _ "Страница 1";

Приведенный выше пример иллюстрирует, как можно изменить имя листа рабочей книги.

К листу рабочей книги можно обратиться и по имени, например:

App.WorkBooks.WorkSheets["Sheet1"].Name:= _ "Страница 1";

Обращение к отдельным ячейкам листа производится с помощью коллекции Cells объекта WorkSheet. Например, добавить данные в ячейку B1 можно следующим образом:

App.WorkBooks.WorkSheets["Sheet1"].Cells.Value:="25";

Здесь первая из координат ячейки указывает на номер строки, вторая - на номер столбца.

Добавление формул в ячейки производится аналогичным способом:

App.WorkBooks.WorkSheets["Sheet1"] _ .Cells.Value:= " =SUM(B1:B2)";

Очистить ячейку можно с помощью метода ClearContents.

Форматирование текста в ячейках производится с помощью свойств Font и Interior объекта Cell и их подсвойств. Например, следующий фрагмент кода выводит текст в ячейке красным жирным шрифтом Courier кегля 16 на желтом фоне:

App.WorkBooks.WorkSheets.Cells.Interior _ .Color:= clYellow; App.WorkBooks.WorkSheets.Cells.Font _ .Color:= clRed; App.WorkBooks.WorkSheets.Cells _ .Font.Name:= "Courier"; App.WorkBooks.WorkSheets.Cells _ .Font.Size:= 16; App.WorkBooks.WorkSheets.Cells _ .Font.Bold:= True;

Программный идентификатор

ВСЕРОССИЙСКИЙ ЗАОЧНЫЙ ФИНАНСОВО - ЭКОНОМИЧЕСКИЙ ИНСТИТУТ

КАФЕДРА АВТОМАТИЗИРОВАННОЙ ОБРАБОТКИ ЭКОНОМИЧЕСКОЙ ИНФОРМАЦИИ

Курсовая работа

по дисциплине «Информатика»

на тему

«Автоматизация работы пользователя в среде MS Office »

Исполнитель: К. В. Бабурин

Группа ФНО

№ зачетной книжки 1271/737

Руководитель: Г. А. Жуков

Москва

- Введение

1. Взаимодействие приложений (3-4стр).

- Теоретическая часть

MICROSOFT WORD

2. Общие положения (5 стр).

3. Автоматизация выполнения задач и получения помощи (5 стр).

a) Перемещение по большому документу (5 стр).

b) Копирование текста (5-6 стр).

с) Сохранение документа во время работы (6 стр).

d) Автозамена (6 стр).

e) Афтоформат при вводе (6-7 стр).

f) Афтореферат (7 стр).

g) Мастер писем (7 стр).

h) Помощник (7 стр).

4. Проверка правописания (8 стр).

5. Таблицы, границы и заливки (8-9 стр).

6. Совместная работа нескольких пользователей (9 стр).

7. Многоязыковая поддержка (10 стр).

MICROSOFT EXCEL

8. Общая характеристика табличного процессора (10-11 стр).

9. Основы работы в среде Excel (11-12 стр).

10. Построение таблиц (12-13 стр).

11. Построение и оформление диаграмм (13-14 стр).

12. Функции Excel (14-15 стр).

13. Дополнительные возможности Excel 15-16 стр).

MICROSOFT ACCESS

14. Несколько слов о… (16 стр).

15. Таблицы (16 стр).

17. Формуляры (17 стр).

18. Отсчеты (18 стр).

19. Макросы, макрокоманды (18 стр).

20. Модули (18 стр).

- Заключение (19 стр).

- Практическая часть

21. Общая характеристика задач (20 стр).

22. Проектирование форм выходных документов…. (20 стр).

23. Таблицы и диаграмма (21-24 стр).

25. Инструкция пользователя (25 стр).

- Список использованной литературы (26 стр).

- Введение:

Любое предприятие сталкивается с проблемой автоматизации работы отдельных сотрудников и подразделений в целом. Первая проблема при этом - как выбрать подходящие программные продукты? Желательные свойства информационной системы сильно зависят от размеров предприятия и специфики его бизнеса, но есть и универсальные требования.

Конечно, любое предприятие нуждается в инструментах для работы с текстами (создание, редактирование, оформление документов), а также для обработки данных (электронные таблицы, средства анализа и планирования, СУБД). Но этого, как правило недостаточно. Ведь с документами работают разные люди, и документы часто состоят из различных частей, включая тексты, числа, таблицы, графики, диаграммы, рисунки, даже звук или видео.

Сегодня все это возможно благодаря созданному компанией Microsoft семейству программ для поддержки офисной деятельности Microsoft Office.

Комплект программных продуктов Microsoft Office включает несколько приложений, образующих единую среду для обработки самой различной информации. В состав Microsoft Office входит мощный текстовый процессор Microsoft Word, электронные таблицы Microsoft Excel, средство для подготовки и демонстрации презентаций Microsoft PowerPoint а также инструмент организации и планирования работы Microsoft Outlook. Кроме того, существует профессиональная версия Microsoft Office, в которую помимо перечисленных приложений входит система управления базами данных (СУБД) Microsoft Access.

Взаимодействие приложений

Microsoft Office отличается тесной интеграцией приложений. Это означает, что все программы, входящие в состав Microsoft Office, "умеют" обмениваться информацией и позволяют делать это достаточно просто.

Например, если необходимо подготовить отчет по результатам финансового периода, содержащий иллюстрации, то данные можно обработать в Microsoft Excel, построить на их основе графики и диаграммы и затем поместить их в текст документа, который создан в Microsoft Word. Перемещение диаграммы производится с помощью операций копирования в буфер обмена Microsoft Windows и вставки в документ, которые доступны через основное меню приложения, через панели инструментов, через горячие клавиши или через контекстное меню, которое появляется при нажатии на правую кнопку мыши. Наконец иллюстрацию, как и любой другой объект, можно "связать" с документом, просто "захватив" мышью в одном приложении и "перетащив" на подходящее место в другом (режим "Drag and Drop").

Приложения Microsoft Office допускают обмен любыми данными между любыми приложениями. Например, можно использовать диаграммы из Microsoft Excel для оформления отчетов в Microsoft Word или для иллюстрации презентации в Microsoft PowerPoint. Можно поместить кусок таблицы из Excel в текст документа Word или в слайд PowerPoint, а можно импортировать в базу данных Microsoft Access. Кроме того, любое приложение Microsoft Office позволяет поместить в документ (будь это текст, электронная таблица, презентация или база данных) рисунок в любом формате, а также видеофрагмент или просто звуковой ролик.

При перенесении отдельных объектов из одного приложения в другое помимо обычной операции копирования/вставки возможно использование механизма связывания оригинального объекта и его копии. В этом случае при изменении исходных данных в таблице Excel меняется построенная на их основе диаграмма, а вместе с ней и та копия диаграммы, которая содержится в документе Microsoft Word. Это дает возможность эффективной работы с составными документами, в которых используются различные источники. Например, данные можно взять из базы данных Access. Они будут обновляться автоматически и любой, кто захочет ознакомиться с таким документом, увидит самые последние цифры.

Семейство Microsoft Office содержит набор инструментов, общих для всех приложений. К ним относятся механизмы проверки правописания и грамматики, средство для рисования, инструмент для создания красочных заголовков, редактор организационных диаграмм, инструмент для редактирования математических формул, редактор фотоизображений, библиотека картинок, и т. д. Сюда же относятся и панели инструментов, и даже меню, которые являются стандартными элементами любого приложения Microsoft Office.

Эти инструменты устанавливаются на диске один раз, а затем используются всеми приложениями Microsoft Office. Эта особенность позволяет сэкономить место на диске, обеспечивает высокую скорость работы приложений и единый интерфейс. Можно легко начать работу с любым приложением Microsoft Office, изучив лишь одно из них.

Начиная с версии 97, в Microsoft Office входит новое приложение - Microsoft Outlook. Это приложение представляет собой инструмент для организации и планирования персональной деятельности. Microsoft Outlook включает электронную почту, базу по контактам, календарь и т.д. Но главное, - он связывает все приложения, выступая как средство организации работы с ними. С помощью Microsoft Outlook можно назначить встречу, добавив в ее описание сопроводительный документ. Это может быть список вопросов, которые планируется обсудить, в формате Microsoft Word, или отчет о результатах года по продажам в формате Microsoft Excel. Можно переслать составленный документ по электронной почте или в виде факс-сообщения.


- Теоретическая часть:

MICROSOFT WORD

Общие положения

Программа Microsoft Word является многофункциональной системой обработки текстов. Поскольку текстовый процессор Word работает в среде Windows то на первом месте среди ее достоинств стоит исключительная дружественность пользователю.

Управление всеми пунктами менюи командами может выполняться как с помощью мыши, так и с помощью горячих клавиш (Short-Cuts), для экономии времени пользователя на выполнение определенного набора операций. Представление WYSIWYG (Wat You See Is What You Get) позволяет просмотреть на экране готовый к печати документ не затрачивая время и бумагу на распечатку пробных страниц. Форматирование символов, например курсивное или жирное имеет адекватное представление на экране. И это справедливо для любых гарнитур и кеглей.

Редактор Microsoft Word так же как и Microsoft Wondows разработаны одной корпорацией. Это позволяет обеспечить максимальную согласованность этих систем друг с другом, а так же с другими программами совместимыми с Microsoft Windows. Тексты и иллюстрации многих форматов могут быть импортированы в Word непосредственно из других программ и встроены в текст документа. В результате такой процедуры они становятся частью текстового файла WinWord или продолжают при этом существовать отдельно благодаря механизму объективного связывания и встраивания (Objekt Linking And Embeding). Так же присутствует ряд хорошо зарекомендовавших себя функций, такие как возможность не прерывая работу с документом распечатать некоторые страницы. В этом случае программа управления печатью с буферизацией берет на себя наблюдение за печатью на заднем плане. Письма и факсы, записки и отчеты, публикации и web страницы – вот далеко не полный перечень документов с над которыми пользователь имеет возможность работать используя текстовый процессор Word.

Автоматизация выполнения задач и получение помощи

В Word имеется широкий выбор средств автоматизации, упрощающих выполнение типичных задач.

Перемещение по большому документу

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

Ctrl + ® - на слово вправо, Ctrl + ¬ - на слово влево,

Ctrl + ¯ - к следующему абзацу, Ctrl + ­ - к предыдущему абзацу, страница,

Ctrl + PgDown - на экран вниз, Ctrl + PgUp - в начало следующей страницы,

Ctrl + Home – в начало документа, Ctrl + End – в конец документа,

Alt + Ctrl + PgUp - в начало экрана, Alt + Ctrl + PgDown - в конец экрана.

Копирование текста

Способы копирования текста:

1 способ:

Выделить фрагмент текста;

использовать команды Вырезать, Копировать, Вставить в меню Правка;

2 способ:

выделить фрагмент;

нажать Ctrl при перемещении, Ctrl + Shift при копировании;

установить курсор в место вставки, нажать правую клавишу мыши;

3 способ(с помощью клавиатуры):

выделить фрагмент;

нажать F2 при перемещении, Shift + F2 при копировании;

перейти в место вставки клавишами управления курсором, нажать Enter;

4 способ:

выделить фрагмент;

перетащить мышкой в нужное место при нажатой левой клавише, при копировании удерживать клавишу Ctrl.

Сохранение документа во время работы. Использование свойств документа

Способы сохранения документа:

Редактор позволяет сохранить документы в форматах: dot(шаблоны), rtf(форматированный текст), txt(текстовый без форматирования), HTML(текст с гиперссылками), в формате MS-DOS, doc(предыдущей версии Word 6.0/95), xls(электронные таблицы) и др.

Автозамена

Ниже перечислены некоторые типы ошибок, которые могут быть исправлены автоматически при вводе:

· Последствия случайного нажатия клавиши CAPS LOCK (впервые появилась в Word 95). Например, в начале предложения слово эТОТ автоматически заменяется на Этот

А режим ввода прописных букв (соответствующий нажатой клавише CAPS LOCK) автоматически отключается.

· Типичные опечатки в словосочетаниях. Например, слова почтовы йадрес автоматически заменяются словами почтовый адрес.

· Грамматически не сочетаемые пары слов. Например, слова этот слово автоматически заменяются словами это слово.

Автоформат при вводе

В Word предусмотрена возможность автоматического форматирования текста при вводе.

· Автоматическое создание нумерованных и маркированных списков (впервые появилось в Word 95). Например, если в начале первого элемента списка ввести звездочку, будет создан маркированный список.

· Автоматическое создание границ (впервые появилось в Word 95). Например, если ввести три и большее число дефисов (-) или знаков равенства (=) подряд, а затем нажать клавишу ENTER, будет автоматически создана одинарная или двойная граница.

· Автоматическое присвоение тексту встроенных стилей (впервые появилось в Word 95). Например, если завершить строку текста не знаком препинания, а двойным нажатием клавиши ENTER, ей будет автоматически присвоен стиль «Заголовок 1».

· Автоматическое форматирование порядковых номеров и дробей (впервые появилось в Word 95; применимо только к английскому тексту). Например, сочетание «1st» автоматически заменяется сочетанием, а дробь «1/4» - символом ј.

· Автоматическое оформление сетевых путей и адресов Интернета (например, \\Reports\May\Week1.doc и http://www.microsoft.com/) как гиперссылок. При выборе гиперссылки на адрес Интернета автоматически запускается имеющееся средство просмотра Web и открывается указанная Web-страница. При выборе гиперссылки на сетевой путь автоматически запускается программа, необходимая для открытия файла назначения, и открывается указанный файл.

· Автоматическое применение форматирования, используемого для оформления начала первого элемента списка, к началу последующих элементов этого списка. Например:

1. Word выполнит всю работу за вас.

2. Word сделает ваши документы красивыми.

· Автоматическое изменение начертания символов. Например, текст *Жирный* автоматически преобразуется в Жирный, а _Курсив_ - в Курсив.

· Автоматическое преобразование последовательности плюсов и дефисов (+----+----+) в таблицу. Каждой паре плюсов (+) соответствует один столбец.

· Автоматическая замена пробелов в начале элемента маркированного или нумерованного списка соответствующим отступом слева.

Автозаполнение

Автоматическое предложение полного варианта слова или фразы после ввода нескольких первых букв. Чтобы принять предложенный вариант, нажмите клавишу ENTER. Ниже перечислены некоторые элементы, к которым применимо автозаполнение:

· текущая дата;

· дни недели;

· элементы списка автотекста.

Автореферат

В Word появилась возможность выполнения статистического и лингвистического анализа документа с целью выделения его ключевых положений. На основании этого анализа составляется реферат. Таким образом можно выделить ключевые положения в электронном документе и просматривать его с разной степенью детализации или поместить автоматически составленный реферат в отдельный документ. Размер реферата устанавливается пользователем и может варьироваться.

При составлении рефератов необходимо соблюдать законы об авторском праве. Ответственность за точность реферата возлагается не на программу, а на пользователя.

Автоматическое создание и предварительный просмотр стилей

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

· В случае применения нового форматирования к тексту автоматически создается новый стиль.

· В случае изменения форматирования текста соответствующие изменения автоматически вносятся в определение стиля.

· Список стилей на панели форматирования содержит образцы стилей.

Мастер писем

Мастер писем позволяет легко и быстро создать нужное письмо путем выбора готовых элементов письма. Кроме того, раз введенные сведения об адресате (имя, фамилия, адрес, должность и т. п.) автоматически сохраняются. При создании следующего письма этому адресату достаточно будет выбрать его имя из списка; все остальные данные будут добавлены автоматически.

Помощник

Новое средство Office - помощник - использует технологию IntelliSense™. Его основное назначение - автоматическое предоставление советов и справочных сведений, которые могут понадобиться по ходу выполнения задачи. Например, если помощник решит, что вы собираетесь приступить к созданию письма, то предложит запустить мастера писем. Помощник является основным средством получения справочных сведений о работе в Word, а также советов по повышению эффективности работы, наглядных примеров и пошаговых инструкций по выполнению конкретных задач.

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

Ниже перечислены основные средства проверки правописания и правки текста, используемые в Word.

1. Проверка орфографии при вводе

Проверка на наличие орфографических ошибок по ходу ввода текста и выделение возможных ошибок прямо в документе (впервые появилось в Word 95).

2. Проверка грамматики при вводе

Проверка на наличие грамматических ошибок по ходу ввода текста и выделение возможных ошибок прямо в документе. Как и при автоматической проверке орфографии, при проверке грамматики автоматически предлагаются возможные варианты правильного написания. Для вывода списка вариантов следует щелкнуть выделенный текст правой кнопкой мыши.

3. Пропуск определенных элементов текста при проверке правописания

· По желанию пользователя при проверке орфографии пропускаются слова, состоящие из прописных букв и/или содержащие цифры.

· Пропуск имен файлов и адресов Интернета.

4. Проверка грамматики

Выделение ошибок и автоматическое предложение вариантов правильного написания позволяет существенно сократить время правки. По сравнению с предыдущими версиями улучшен синтаксический анализ, более точными стали предлагаемые варианты правильного написания, а также расширен набор грамматических и стилистических правил.

5. Совместная проверка орфографии и грамматики

В тексте одновременно выполняется поиск и орфографических, и грамматических ошибок. Все ошибки устраняются за один сеанс проверки.

Таблицы, границы и заливка

В Word появились следующие средства, упрощающие работу с таблицами, границами и заливкой.

Таблицы

1. Рисование таблиц

Позволяет создавать таблицы - столбцы, строки и ячейки, - рисуя их с помощью мыши, как карандашом. Теперь отдельные ячейки таблицы могут иметь любую ширину и высоту.

2. Ластик

Позволяет легко удалить границу любой ячейки, строки или столбца таблицы, что дает тот же эффект, что и объединение ячеек. В предыдущих версиях Word можно было объединять только ячейки, находящиеся в одной строке. В Word 97 можно объединять любые соседние ячейки - как по вертикали, так и по горизонтали.

3. Выравнивание по вертикали

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

4. Вертикальная ориентация текста

Позволяет расположить вертикально (с поворотом на 90 градусов) текст в ячейках таблиц, надписях и рамках. Это средство может оказаться очень полезным при создании наклеек, а также печатных документов, содержащих сведения об авторских правах и т. п., расположенные вертикально.

5. Изменение размера строки таблицы

Позволяет регулировать высоту любой строки непосредственно в таблице посредством перетаскивания границы строки вверх или вниз подобно тому, как можно изменить ширину столбца. Если при перетаскивании удерживать нажатой клавишу ALT, на вертикальной линейке будет показана фактическая высота строки.

Границы

1. Новые типы границ

Для оформления документов предлагается более 150 различных типов границ, в том числе объемные границы и границы, состоящие из нескольких линий, которые особенно популярны в профессиональных документах.

2. Границы страниц

Позволяет создать границу вокруг каждой страницы. В дополнение к 150 новым типам границ предлагаются более 160 типов графических границ страницы. Также существует возможность настройки границ страниц. Например, можно:

· задать свой тип границы для каждого края страницы;

· поместить колонтитулы внутрь границы;

· оформить первую страницу не так, как остальные.

3. Границы текста

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

Заливка

1. Заливка текста

Позволяет выделить наиболее важные фрагменты документа, к которым следует привлечь внимание других пользователей. В Word заливку можно применить не только ко всему абзацу, но и к отдельным словам и символам внутри абзаца. При этом можно использовать любые имеющиеся типы заливки.

Совместная работа нескольких пользователей

В Word появились новые возможности и средства, повышающие производительность и эффективность работы членов рабочих групп.

1. Создание версий

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

2. Слияние документов

Объединение всех изменений и примечаний, внесенных несколькими рецензентами, в один документ с помощью одной простой операции. Нескольким рецензентам можно предоставить для проверки отдельные копии документа, после чего все исправленные копии объединяются в итоговый документ. Или, например, можно унести домой копию документа, исправить ее там, а затем вернуть исправленную копию и автоматически объединить внесенные изменения с исходным документом.

3. Примечания и всплывающие подсказки

Быстрый просмотр на экране примечаний любых рецензентов непосредственно в документе без открытия отдельной области. Примечания легко обнаружить в документе - текст, снабженный примечанием, выделяется желтым цветом. При установке указателя на этот текст над ним появляется всплывающая подсказка, содержащая текст примечания и имя рецензента.

4. Панель рецензирования

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

Многоязыковая поддержка

В Word 95 было реализовано автоматическое переключение шрифта и языка при переключении клавиатуры, что сделало возможным использование текста на нескольких языках в документе и некоторых диалоговых окнах. В Word 97 еще более упростились создание и просмотр документов, содержащих текст на различных европейских языках. Кроме того, предусмотрена возможность просмотра документов, созданных с помощью дальневосточных версий Word, в американской версии Word.

1. Переключение клавиатуры

Автоматическое переключение шрифтов в документе при переключении клавиатуры (набор используемых шрифтов определяется текущей раскладкой клавиатуры). Переключение клавиатуры вызывает также переключение языка и, следовательно, обеспечивает проверку текста на другом языке, например, греческом, средствами проверки именно этого языка.

2. Поддержка текстов на нескольких языках в диалоговых окнах

Стали возможными редактирование и просмотр текста на нескольких языках в локализованных версиях Word. Например, в качестве условия поиска файлов в диалоговом окне Поиск файлов можно указать греческое имя автора.

3. Открытие документов с текстом на нескольких языках в локализованной версии Word

Правильное отображение текста документа, созданного в локализованной версии Word, при наличии в системе соответствующих шрифтов. Например, документы, созданные в японской версии Word, можно открывать и просматривать в американской версии Word. Следует отметить, что эта возможность не распространяется на языки, в которых направление письма может меняться (иврит, арабский и т. п.).

4. Копирование и вставка текста в формате Unicode

Существует возможность копирования текста на греческом, русском или любом другом европейском языке из американской версии Word и вставка его в лист Microsoft Excel. Кроме того, допускается копирование и вставка текста в формате Unicode в поля некоторых диалоговых окон (Найти, Заменить и т. п.).

5. Сортировка

Существует возможность указать язык и, тем самым, порядок сортировки, который следует использовать при сортировке текста в документе. Например, двойные буквы венгерского языка, такие как «cz», правильно сортируются в американской версии Word, если в качестве языка сортировки указан венгерский.

6. Вставка символов

Для получения возможности вставки символов и букв, используемых в конкретном языке, достаточно выбрать соответствующий набор символов шрифта Unicode в диалоговом окне Символ (меню Вставка). Например, чтобы вставить в текст русские буквы, следует выбрать набор «Кириллица».

MICROSOFT EXCEL

Управление файлами

С помощью программы Excel можно создавать самые различные документы. Рабочие листы (Sheets) можно использовать для составления таблиц, вычисления статистических оценок, управления базой данных и составления диаграмм. Для каждого из этих приложений программа Excel может создать отдельный документ, который сохраняется на диске в виде файла.

Файл может содержать несколько взаимосвязанных рабочих листов, образующих единый многомерный документ (блокнот, рабочую папку). С помощью многомерных документов пользователь получает прямой доступ одновременно к нескольким таблицам и диаграммам что повышает эффективность их обработки.

Имеются возможности настройки режима автосохранения файлов через определенные промежутки времени, режима резервного копирования и режима защиты данных (сохранение документа с паролем).

Структура документов

Многомерные документы (блокноты, папки) - одно из важнейших новшеств программы Excel, позволяющее значительно упростить и ускорить работу с таблицами и управление рабочими листами. В новой версии рабочие документы могут содержать до 255 таблиц, диаграмм или VBA-программ в одном файле, а принцип работы с ними напоминает обычную работу с деловыми блокнотами в любом офисе. В каждом рабочем блокноте можно поместить всю деловую информацию, относящуюся к одной теме, и хранить ее в одном файле, что позволяет значительно повысить наглядность рабочих документов.

Отдельные рабочие листы одного документа расположены друг под другом. С помощью именного указателя (регистра имен), расположенного в нижней части экрана, можно переходить с одного листа на другой. На именном указателе находятся корешки рабочих листов, расположенные в порядке возрастания номеров: Лист1, Лист2 и т.д.

Пользователь может добавить в документ элементы следующих типов:

Рабочие листы для создания таблиц;

Диаграммы (в качестве элемента таблицы или на отдельном листе);

Рабочий лист для записи макрокоманды в виде программного модуля;

Рабочий лист для создания диалогового окна.

Новый лист всегда вставляется перед активным рабочим листом. Пользователь может щелкнуть по названию рабочего листа правой кнопкой мыши, после чего откроется контекстное (зависящее от ситуации) меню, в котором также имеется директива добавления. Если нужно удалить рабочий лист, нужно открыть щелчком правой кнопки мыши контекстное меню и выполнить директиву удаления.

Коррекция высоты строк и ширины столбцов

Прежде всего, корректируемая строка или столбец таблицы должны быть промаркированы. Для этого необходимо щелкнуть левой кнопкой мыши по номеру (координате) строки или столбца. В меню Формат находятся подменю Строка и Столбец . При выборе одного из этих подменю открывается меню следующего уровня. В подменю Столбец вызовите директиву Ширина , тогда откроется диалоговое окно, в котором пользователь может указать ширину столбца. В качестве единицы измерения можно использовать один символ. Команда Автоподбор ширины из меню Столбец автоматически корректирует ширину столбца в соответствии с его содержимым.

Коррекцию можно выполнить и с помощью манипулятора мыши. Для этого указатель мыши нужно установить на границу между номерами строк или адресами столбцов.

Ячейки таблицы и их свойства

Все данные таблицы записываются в так называемые ячейки , которые находятся на пересечении строк и столбцов таблицы. По умолчанию содержимое ячейки представляется программой Excel в стандартном формате, который устанавливается при запуске программы. Например, для чисел и текстов задается определенный вид и размер шрифта.

В программе Excel имеются контекстные меню , которые вызываются правой кнопкой мыши, когда промаркирована некоторая область таблицы. Эти меню содержат много директив обработки и форматирования таблиц. Директивы форматирования можно также вызвать на панели форматирования (вторая строка пиктографического меню), щелкнув мышью по соответствующей пиктограмме.

Маркирование ячеек. Отдельные ячейки таблицы маркируются (выделяются) автоматически с помощью указателя ячеек. Чтобы перевести указатель в заданную ячейку, нужно щелкнуть по ней левой кнопкой мыши или использовать клавиши управления курсором. Для маркировки нескольких ячеек нужно щелкнуть в начале маркируемой области (левый верхний угол) и, удерживая кнопку мыши нажатой, перемещать манипулятор в конец области (правый нижний угол).

Одна строка или столбец таблицы маркируются щелчком по номеру (адресу), который расположен в заголовке строки или столбца. Для маркирования нескольких строк или столбцов нужно щелкнуть по номеру первой строки (столбца), а затем, удерживая кнопку мыши нажатой, переместить манипулятор в нужную позицию.

Копирование данных. Прежде всего, нужно промаркировать группу ячеек, содержимое которых должно быть скопировано, а затем вызвать команду Копировать из меню Правка . После этого маркированная область будет заключена в рамку. Теперь следует установить указатель мыши в позицию, куда должны быть скопированы данные, и нажать клавишу ввода Enter . Содержимое маркированной области появится в новом месте. Если нужно удалить содержимое группы ячеек и поместить его на новое место в таблице, то следует использовать директиву Вырезать из меню Правка .

Удаление данных. Прежде всего, нужно промаркировать группу ячеек, содержимое которых должно быть удалено. Затем можно воспользоваться одним из способов удаления данных.

Форматирование чисел. Прежде всего, нужно промаркировать ячейки, в которых надо изменить формат представления чисел. После этого можно либо открыть правой кнопкой мыши контекстное меню и вызвать в нем директиву Формат Ячеек , либо вызвать директиву Ячейка из меню Формат . В любом случае на экране появится диалоговое окно Формат Ячеек . По умолчанию в верхнем поле этого окна будет выбрана опция Число , которая предназначена для форматирования чисел.

Выравнивание данных. Для выравнивания содержимого ячеек прежде всего надо промаркировать выравниваемые ячейки. Далее следует вызвать диалог: Формат – Ячейки - и в верхнем поле этого окна выбрать закладку Выравнивание.

Установка шрифтов. Необходимо промаркировать ячейки, в которых нужно изменить шрифт. После этого можно либо открыть контекстное меню правой кнопкой мыши и вызвать директиву Формат Ячеек . В верхнем поле открывшегося окна Формат Ячеек нужно выбрать опцию Шрифт . В окне появится поле Шрифт , в котором можно выбрать вид шрифта из предлагаемого списка. Содержание этого списка зависит от установок, сделанных в среде Windows.

В правом поле Размер устанавливается размер (кегль) шрифта. В списке шрифтовых стилей Начертание можно выбрать обычный стиль (Regular), курсив (Italic), жирный шрифт (Bold) и жирный курсив (Bold Italic). В поле Подчеркивание можно выбрать тип подчеркивания текста (одной или двумя линиями) и т.д.

Табличные вычисления

Возможность использования формул и функций является одним из важнейших свойств программы обработки электронных таблиц. Это, в частности, позволяет проводить статистический анализ числовых значений в таблице.

Текст формулы, которая вводится в ячейку таблицы, должен начинаться со знака равенства (=), чтобы программа Excel могла отличить формулу от текста. После знака равенства в ячейку записывается математическое выражение, содержащее аргументы, арифметические операции и функции.

В качества аргументов в формуле обычно используются числа и адреса ячеек . Для обозначения арифметических операций могут использоваться следующие символы: + (сложение), - (вычитание), * (умножение), / (деление).

Ввод формул. Программа Excel интерпретирует вводимые данные либо как текст (выравнивается по левому краю), либо как числовое значение (выравнивается по правому краю). Для ввода формулы необходимо ввести алгебраическое выражение, которому должен предшествовать знак равенства (=).

Предположим, что в ячейке А1 таблицы находится число 100, а в ячейке В1 - число 20. Чтобы разделить первое число на второе и результат поместить в ячейку С1, в ячейку С1 следует ввести соответствующую формулу (=А1/В1 ) и нажать Enter .

Ввод формул можно существенно упростить, используя небольшой трюк. После ввода знака равенства следует просто щелкнуть мышью по первой ячейке, затем ввести операцию деления и щелкнуть по второй ячейке.

Редактирование формул. Чтобы начать редактировать содержимое ячейки, нужно сначала промаркировать эту ячейку. На следующем шаге необходимо включить режим редактирования, нажав клавишу F2 или выполнив двойной щелчок мышью. В режиме редактирования в верхней части экрана (под строкой пиктографического меню) активизируется наборная строка, в которой видна сама формула, а не результат ее вычисления.

Информационные связи. В программе Excel довольно легко ввести ссылку на ячейку, расположенную в другой таблице. После установления ссылки значения, находящиеся в ячейках, будут автоматически обновляться.

Для обращения к значению ячейки, расположенной на другом рабочем листе, нужно указать имя этого листа вместе с адресом соответствующей ячейки. Например, для обращения к ячейке В3 на рабочем листе Лист2 необходимо ввести формулу: =Лист2!B3. Адреса ячеек должны быть указаны латинскими буквами.

Графические диаграммы оживляют сухие колонки цифр в таблице, поэтому уже в ранних версиях программы Excel была предусмотрена возможность построения диаграмм. В Excel включен новый Конструктор диаграмм , который позволяет создавать диаграммы "презентационного качества".

Красивая трехмерная диаграмма не только радует глаз, но и улучшает качество документа. В программе MS Excel появился новый тип трехмерных диаграмм - так называемые кольцевые диаграммы, которые дополняют поверхностные и сетчатые трехмерные диаграммы четвертой версии.

Диаграмму можно расположить рядом с таблицей или разместить ее на отдельном рабочем листе. Конструктор диаграмм является одним из наиболее мощных средств в программе Excel . Построение диаграммы с его помощью выполняется за несколько шагов. Конструктору указывается исходная область таблицы, тип диаграммы, используемые надписи и цвета. На основной панели имеется пиктограмма для вызова Конструктора диаграмм.

Построение диаграмм. Прежде чем строить диаграмму, необходимо закончить все работы в таблице, включая ее форматирование. Вызовите Конструктор диаграмм (см. рис.11). Вы должны сделать с помощью указателя мыши прямоугольник на свободном месте рабочего листа, где будет размещена диаграмма.

После этого Конструктор открывает диалоговое окно, в котором за четыре шага нужно построить диаграмму. Работа с Конструктором настолько интуитивно понятна, что не требует каких – либо пояснений.

Дополнительные объекты. В меню Вставка расположены директивы, которые позволяют придать диаграмме более привлекательный вид. В частности, здесь есть директива Рисунок , которая импортирует рисунки в стандартных графических форматах (BMP, PCX и т.д.). После вызова этой директивы открывается окно загрузки графического файла. На диаграмме появляется выбранный рисунок, заключенный в рамку. Эту рамку можно перемещать по диаграмме с помощью мыши и изменять ее размер.

Кроме этого, Конструктор диаграмм предоставляет возможность вставить в диаграмму дополнительный текст, который будет привлекать внимание к отдельным частям диаграммы. Для вставки текста нужно ввести его с клавиатуры в наборную строку и нажать клавишу ввода Enter . Тогда в центре диаграммы появится текстовая рамка, которой можно придать с помощью мыши соответствующий размер, а затем перенести ее в нужное место на диаграмме.

Актуализация диаграмм. Если Вы внесете изменения в ту часть таблицы, по которой строилась диаграмма, то программа Excel автоматически модифицирует диаграмму. Если же Вы добавили в таблицу новую строку или столбец, то действуйте следующим образом. Промаркируйте новые данные в таблице и перенесите их с помощью мыши на диаграмму. Для этого поставьте указатель мыши на границу маркированной области и, не отпуская левой кнопки мыши, переместите ее на диаграмму. Как только Вы отпустите кнопку мыши, диаграмма будет изменена (актуализирована). Эта техника получила в корпорации Microsoft название Drag & Drop .

Для выполнения табличных вычислений нужны формулы. Поскольку некоторые формулы и их комбинации встречаются очень часто, то программа Excel предлагает более 200 заранее запрограммированных формул, которые называются функциями .

Все функции разделены по категориям, чтобы в них было проще ориентироваться. Встроенный Конструктор функций помогает на всех этапах работы правильно применять функции. Он позволяет построить и вычислить большинство функций за два шага.

В программе имеется упорядоченный по алфавиту полный список всех функций, в котором можно легко найти функцию, если известно ее имя; в противном случае следует производить поиск по категориям. Многие функции различаются очень незначительно, поэтому при поиске по категориям полезно воспользоваться краткими описаниями функций, которые предлагает Конструктор функций. Функция оперирует некоторыми данными, которые называются ее аргументами. Аргумент функции может занимать одну ячейку или размещаться в целой группе ячеек. Конструктор функций оказывает помощь в задании любых типов аргументов.

Конструктор функций . Промаркируйте ту ячейку, в которой должен появиться результат вычислений. Затем щелчком по пиктограмме Конструктора функций откройте диалоговое окно Конструктора. В левом поле этого окна перечислены категории функций, а в правом - функции, соответствующие выбранной категории. Для того чтобы увидеть все функции, следует щелкнуть мышью по опции Все в поле категорий.

Щелкните мышью по названию нужной Вам функции, тогда название функции появится в отдельной строке вместе с кратким описанием этой функции. Здесь же указываются типы аргументов функции и их количество. Аргументы задаются на следующем шаге работы с Конструктором. Чтобы перейти к нему, щелкните по командной кнопке О K .

На втором шаге в диалоговом окне Конструктора указываются аргументы функции. Конструктор различает аргументы, которые должны учитываться обязательно, и необязательные (опциональные) аргументы. Чтобы задать аргумент функции, нужно либо ввести его адрес с клавиатуры, либо в таблице промаркировать область, где он расположен. Тогда адрес аргумента функции появится в соответствующем поле диалогового окна Конструктора. Щелкните по командной кнопке ОК , чтобы закрыть окно Конструктора функций. После этого в указанной ячейке таблицы появится результат вычислений, но ячейка останется маркированной. В наборной строке можно увидеть выбранную функцию вместе с соответствующими аргументами.

Автосумма. Промаркируйте ячейку, где должна располагаться сумма, и щелкните мышью по пиктограмме сложения .

В наборной строке появится знак равенства и слово "СУММ", за которым в скобках обычно следует адрес некоторой области, которую программа предлагает после анализа близлежащих ячеек в качестве области суммирования. Если Excel "угадала" правильно, щелкните по пиктограмме с "галочкой".

В противном случае промаркируйте группу ячеек, которые нужно сложить. Можно промаркировать несколько несмежных групп ячеек, используя клавишу Ctrl . Эту клавишу нужно удерживать в нажатом состоянии до тех пор, пока все группы не будут промаркированы. Адреса групп можно ввести с клавиатуры.

Обмен данными

Обмен данными позволяет пользователю Excel импортировать в свои таблицы объекты из других прикладных программ и передавать (экспортировать) свои таблицы для встраивания в другие объекты.

Концепция обмена данными является одной из основных концепций среды Windows. Между объектами, которые обрабатываются различными прикладными программами, создаются информационные связи, например, между таблицами и текстами. Эти информационные связи реализованы динамически, например, копия таблицы, встроенная в текст, будет обновляться (актуализироваться) всякий раз, когда в ее оригинал вносятся изменения.

Обработка списков

Списки позволяют эффективно работать с большими однородными наборами данных.

Списком будем называть упорядоченный набор данных, имеющих одинаковую структуру. Например, списком является телефонный справочник, в котором приведены фамилии абонентов и номера их телефонов. В программе Excel разработчики из фирмы Microsoft значительно упростили работу со списками. С технической точки зрения списки представляют собой обычные таблицы, для которых в программе Excel имеются дополнительные операции обработки: ввод списка данных, поиск элемента в списке, редактирование списков, фильтрация данных, сортировка данных, анализ данных (поиск тенденций и закономерностей)

Базы данных

В комплект поставки Excel входит программа обработки внешних баз данных MS Query. Программа Query (Запрос) может работать с текстовыми файлами и с данными, которые были подготовлены следующими программами управления базами данных: Ms Access, dBASE, FoxPro, Oracle, Paradox, SQL Server.

Если в процессе работы с таблицей в программе Excel возникает необходимость обратиться к внешней базе данных, нужно запустить программу Query. Это позволит импортировать данные из базы и обрабатывать их как обычные табличные данные в программе Excel. В некоторых случаях внешние данные можно обработать непосредственно программой Query.

После загрузки набора данных из него можно выбрать часть записей путем включения критериев отбора данных.

Конфигурирование программы

Программу Excel можно настраивать в соответствии с индивидуальными запросами очень широкого круга пользователей. Каждый пользователь программы Excel, определив круг наиболее часто используемых функций, может организовать работу с ними наиболее удобным для себя образом. С другой стороны, те функции программы, которые никогда не используются, можно вообще убрать из конфигурации, чтобы сэкономить ресурсы компьютера и повысить эффективность обработки. Например, каждый пользователь программы может создать пиктографическое меню, изменить вид основного окна, изменить вид рабочего листа, установить желаемые шрифты, создать шаблоны таблиц и т.д.

MICROSOFT ACCESS

Несколько слов о...

Microsoft Access - это интерактивная реляционная СУБД(relational database management system - RDBMS ) для WINDOWS . Это программа, которую Вы можете использовать для хранения и извлечения данных в зависимости от отношений, которые Вы установили. Работа с ней упрощена посредством манипулятора мыши. Графические возможности оболочки производят большое впечатление при изготовлении высококачественных отчетов и распечаток. Все это благодаря поддержки True-type шрифтов и встраивания OLE-объектов (Object Linking and Embeding ) в рамках среды WINDOWS . OLE - объект представляет собой ссылку на определенную информацию, которая остается в своей первоначальной форме. OLE-объектом может быть EXCEL - таблица , Paintbrush - иллюстрация или Sound - файл.

Новинкой программы Access является Cue Cards - Система суфлирования. Это обучающая система, предоставляющая пользователю рекомендации по выходу из реальных ситуаций при решении прикладных задач. При знании английского языка пользователь всегда сможет получить подсказку о том, что следует делать далее.

Access также предоставляет в распоряжение пользователя механизмы работы с базами данных различных форматов. К примеру, можно прямо обращаться к базам данных dBASE , Paradox или Btrieve без конвертирования их в формат, используемый Access . В состав пакета Access также входит язык Access Basic (встроенный диалект языка Visual Basic ), дающий возможность формирования специализированных систем управления базами данных.

База данных это набор данных, который связан с определенной темой или назначением. Когда Вы создаете базу данных в Microsoft Access, Вы создаете один файл, который содержит все таблицы, запросы, формуляры, отчеты и другие объекты, которые помогают Вам использовать информацию в базе данных.

Таблицы

ТАБЛИЦА - это набор записей(строк таблицы), состоящих из отдельных полей(колонок таблицы), в которых хранится информация и составляющая, собственно, содержание базы данных.

Таблицы являются основной формой представления информации, содержащейся в базе данных. Без таблицы нельзя спроектировать формуляр, на базе таблиц составляются запросы и отчеты. Создать таблицу можно двумя способами:

1. С помощью Конструктора таблиц .

2. Без помощи Конструктора .

Запросы

Запрос можно представить себе как точку зрения на данные, включенные в таблицу. Запросы служат для селекции и фильтрации набора данных. Они позволяют выбрать из базы только необходимую информацию, т.е. ту, которая соответствует определенному критерию(условию) и нужна для решения конкретной задачи. Например, Вам может понадобится информация о поставщиках и поставляемых ими товарах. Вы можете создать запрос типа “Какие товары поставляют московские поставщики” или “Кто из петербургских поставщиков сигарет продал за последний квартал наибольшую партию”. Результат обработки программой Access такого запроса представляет собой таблицу называемую Dynaset . В эту таблицу включены выбранные из основной таблицы(или нескольких таблиц) блоки данных, которые удовлетворяют критериям запроса. Dynaset - динамический, временный набор данных, поэтому при каждом выполнении запроса он строится вновь на основе “свежих” табличных данных.

Microsoft Access дает большие возможности в гибкости проектирования запросов. Вы можете:

· Выбрать поля, Вам не надо включать все поля таблицы в запрос.

· Выбрать записи, Вы можете специфицировать запрос таким образом что получите данные определенного вида. Например, цены на товары за определенный месяц.

· Отсортировать записи, Вы можете просматривать записи в определенном порядке. Например, Вы можете вывести имена клиентов на экран в алфавитном порядке.

· Запрашивать данные из нескольких таблиц, данные из нескольких таблиц могут обрабатываться вместе и Вы можете просмотреть совмещенные данные. Также Вы можете запрашивать данные из других баз данных, таких как Microsoft FoxPro , Paradox , dBASE , Btrieve и Microsoft или Sybase SQL-серверы .

· Выполнять вычисления, Вы можете создавать новые поля которые будут содержать результаты вычислений.

· Использовать запрос в качестве источника данных для формуляров, отчетов и других запросов. Каждый раз когда Вы будете открывать формуляр или печатать отчет, Ваш запрос будет извлекать новейшую информацию из таблиц. Вы также сможете модифицировать существующие данные прямо в формуляре основанном на запросе.

· Изменять данные в таблицах, Вы можете обновлять, удалять, добавлять группы записей все сразу. Вы также можете создать новую таблицу на базе существующей таблицы или группы таблиц.

Выделяют два типа запросов:

1. QBE-запросы (Query by Example -Запрос по образцу ). Пользователь дает им определения, специфицируя отдельные параметры в окне проектирования с использованием подсказок(образцов).

2. SQL - запросы (Structured Query Language -Структурированный язык запросов ). Пользователь формулирует их с использованием инструкций и функций, выстраивая описание. QBE-запрос Access легко транслирует в соответствующий SQL-запрос . Обратная операция тоже не составляет труда. Вообще для Access безразлично, с каким типом запроса работает пользователь.

Запросы можно создавать с помощью Конструктора запросов. Он ускоряет проектирование нескольких специальных типов запросов.

Формуляры

Просмотр базы данных в виде таблицы в режиме заполнения дает пользователю возможность оценить базу как единое целое, сравнить записи и т.п. Часто, однако, возникает необходимость работы с отдельными записями базы. В этом случае присутствие на экране других записей (как это имеет место в режиме заполнения) только мешает и отвлекает. Работа с отдельными записями посредством формуляров позволяет сосредоточиться только на относящейся к делу информации.

Формуляр представляет собой бланк, подлежащий заполнению, или маску, накладываемую на набор данных. Бланк-формуляр позволяет упростить процесс заполнения базы данных, благодаря чему появляется возможность поручить ввод информации персоналу невысокой квалификации. Маска-формуляр позволяет ограничить объем информации, доступной пользователю, обращающемуся к базе. Речь здесь также может идти о блокировании индикации служебных или засекреченных полей.

Отчеты

Отчет это информация, которую Вы оформили в соответствии с Вашими спецификациями. Отчет позволяет извлекать и представлять данные как значимую информацию, которую Вы можете использовать и распространять. Примерами отчетов могут служить почтовые адреса, накладные, суммы продаж или списки телефонов. С помощью Microsoft Access Вы можете спроектировать отчет который представит информацию в том виде в котором Вы пожелаете. Вы можете использовать множество различных элементов проектирования, таких как текст, данные, рисунки, линии, поля и графики для создания Вашего отчета.От Вас зависит, как и какие элементы использовать для построения отчета.

Microsoft Access обеспечивает несколько способов получения информации из Вашей базы данных - используя запрос, формуляр или отчет.Вы можете выбрать тот метод, который наиболее подходит к решению Вашей задачи.

Например:

· Для просмотра всех товаров определенной торговой поставки, используйте запрос.

· Для просмотра полной информации только об одном товаре используйте формуляр.

· Для распечатки торговых продаж для формального прелставления, используйте отчет.

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

Макросы, макрокоманды

Макрокоманда представляет из себя последовательность операций, записанных в виде инструкций на специальном языке. При оработке данных часто приходится делать длинные последовательности действий. Но любые действия, операции могут быть записаны в виде макрокоманд. Вызов макрокоманд приводит к выполнению последовательности ранее описанных действий. Применение макрокоманд позволяет автоматизировать различные повторяющиеся процессы, такие как заполнение Базы, выполнение запросов, открывание различных объектов и т.д.

Последовательность операций вводится пользователем в окно проектирования макокоманд.

Модули

При решении достаточно сложных задач Вы скоро столкнетесь с ограниченностью макрокоманд. Для преодоления возникших проблем Вы можете попробовать написать свою программу на встроенном в Access языке программирования - Access Basic . Он представляет из себя средство визуального программирования и является диалектом языка Visual Basic . Такая процедура оформляется как Модуль .

Модуль представляет из себя совокупность объявлений (деклараций) и последовательностей исполняемых команд (процедур, функций) записанных на язаке Access Basic .

- Заключение

Естественно, что в рамках данной курсовой нет никакой надежды полностью осветить возможности столь многогранных программ, так как полный пакет «Microsoft Office» очень разнообразен. Для того, чтобы знать «Microsoft Office» нужно в нем работать. Используя этот пакет, Вы, наверняка, будете открывать все новые и новые возможности и свойства. Исследуйте и экспериментируйте. Если результаты Вам не нравятся, пробуйте снова. Последствия почти всех действий в «Microsoft Office» можно отменить, поэтому, экспериментируя, вы не потеряете ничего, кроме нескольких минут вашего времени.


- Практическая часть:

Общая характеристика задачи

Фирма ООО «Инициатива» осуществляет деятельность, связанную со строительным работами и продажей строительных материалов. Цены на товары и услуги представлены в (табл. 1), данные о фирмах, заказы которых должны быть выполнены в сентябре 2001 г. – (табл. 2).

Используя ППП на ПК, необходимо:

Построить таблицы по приведенным ниже табличным данным;

Организовать межтабличные связи для автоматического заполнения граф: «Наименование фирмы» и автоматический подсчет суммы заказов каждой фирмы-заказчика в спроектированных документах;

Результаты вычислений представить в виде таблицы, содержащий итоговые суммы за месяц по каждой фирме-заказчику и по фирме ООО «Инициатива», и в графическом виде;

Данная задача решается в табличном процессоре MS Excel, так как это средство подготовки и обработки табличным образом организованных электронных данных. Excel выполняет математические и тригонометрические функции, включающие функцию суммирования, извлечения квадратного корня, произведения, логарифмические выражения и т. д. Также этот табличный процессор предназначен для построения диаграмм.

Проектирование форм выходных документов и графическое представление данных по выбранной задаче

Расположение таблиц с исходными данными на рабочих листах MS Excel: «Товары» (табл. 1) и «Заказчики» (табл. 2);

Таблицу с итоговыми данными по фирмам (представлена в виде формул) (табл. 3);

Графическая таблица в виде «Диаграммы» (табл. 4);

табл. 1

табл. 2


Дата

Наименование фирмы

Код фирмы

Код заказа

Наименование товара

ПРОСМОТР(C2;Заказчики!$A$2:$A$6;Заказчики!$B$2:$B$6)

ПРОСМОТР(F2;Товары!$A$2:$A$5;Товары!$B$2:$B$5)

ПРОСМОТР(C3;Заказчики!$A$2:$A$6;Заказчики!$B$2:$B$6)

ПРОСМОТР(F3;Товары!$A$2:$A$5;Товары!$B$2:$B$5)

Медик Итог

ПРОСМОТР(C5;Заказчики!$A$2:$A$6;Заказчики!$B$2:$B$6)

ПРОСМОТР(F5;Товары!$A$2:$A$5;Товары!$B$2:$B$5)

ПРОСМОТР(C6;Заказчики!$A$2:$A$6;Заказчики!$B$2:$B$6)

ПРОСМОТР(F6;Товары!$A$2:$A$5;Товары!$B$2:$B$5)

ПРОСМОТР(C7;Заказчики!$A$2:$A$6;Заказчики!$B$2:$B$6)

ПРОСМОТР(F7;Товары!$A$2:$A$5;Товары!$B$2:$B$5)

Приват Итог

ПРОСМОТР(C9;Заказчики!$A$2:$A$6;Заказчики!$B$2:$B$6)

ПРОСМОТР(F9;Товары!$A$2:$A$5;Товары!$B$2:$B$5)

Факториал Итог

ПРОСМОТР(C11;Заказчики!$A$2:$A$6;Заказчики!$B$2:$B$6)

ПРОСМОТР(F11;Товары!$A$2:$A$5;Товары!$B$2:$B$5)

ПРОСМОТР(C12;Заказчики!$A$2:$A$6;Заказчики!$B$2:$B$6)

ПРОСМОТР(F12;Товары!$A$2:$A$5;Товары!$B$2:$B$5)

Проект - М Итог

ПРОСМОТР(C14;Заказчики!$A$2:$A$6;Заказчики!$B$2:$B$6)

ПРОСМОТР(F14;Товары!$A$2:$A$5;Товары!$B$2:$B$5)

Сервис Итог

Общий итог

табл. 3


продолжение табл. 3

Код товара

Количество

Сумма, руб.

ПРОСМОТР(F2;Товары!$A$2:$A$5;Товары!$E$2:$E$5*G2)

ПРОСМОТР(F3;Товары!$A$2:$A$5;Товары!$E$2:$E$5*G3)

ПРОМЕЖУТОЧНЫЕ.ИТОГИ(9;H2:H3)

ПРОСМОТР(F5;Товары!$A$2:$A$5;Товары!$E$2:$E$5*G5)

ПРОСМОТР(F6;Товары!$A$2:$A$5;Товары!$E$2:$E$5*G6)

ПРОСМОТР(F7;Товары!$A$2:$A$5;Товары!$E$2:$E$5*G7)

ПРОМЕЖУТОЧНЫЕ.ИТОГИ(9;H5:H7)

ПРОСМОТР(F9;Товары!$A$2:$A$5;Товары!$E$2:$E$5*G9)

ПРОМЕЖУТОЧНЫЕ.ИТОГИ(9;H9:H9)

ПРОСМОТР(F11;Товары!$A$2:$A$5;Товары!$E$2:$E$5*G11)

ПРОСМОТР(F12;Товары!$A$2:$A$5;Товары!$E$2:$E$5*G12)

ПРОМЕЖУТОЧНЫЕ.ИТОГИ(9;H11:H12)

ПРОСМОТР(F14;Товары!$A$2:$A$5;Товары!$E$2:$E$5*G14)

ПРОМЕЖУТОЧНЫЕ.ИТОГИ(9;H14:H14)

ПРОМЕЖУТОЧНЫЕ.ИТОГИ(9;H2:H14)


табл. 4

Инструкция пользователя

Программа Excel входит в пакет Microsoft Office и предназначена для подготовки и обработки электронных таблиц под управлением Windows.

Для того, что бы запустить программу Excel нужно нажать ПУСК, затем ПРОГРАММЫ и MICROSOFT EXCEL. Появляется чистый табличный лист, начинаем вносить данные в таблицу. Таблица состоит из 16384 строк и 256 столбцов . Строки пронумерованы целыми числами от 1 до 16384, а столбцы обозначены буквами латинского алфавита A, B, …,Z, AA, AB, …, IV. На пересечении столбца и строки располагается основной структурный элемент таблицы – ячейка . В любую можно ввести исходные данные – число или текст, - а также формулу для расчета производной информации. Ширину столбцов и высоту строки можно изменять.

Данная прикладная программа работает в среде MS Excel. Для ввода новых расчетных данных следует выбрать Файл – Создать , указав шаблон «Ведомость расчета стоимости продукции с учетом скидки».

В данном шаблоне введено ограничение на 12 позиций расчетных данных. Для добавления новой строки следует скопировать последнюю строку. Таким образом, размер границ ограничен лишь 32000 строк

Для распечатки диаграммы необходимо настроить диапазон значений в зависимости от количества введенных данных. Для установки значений необходимо перейти на лист диаграммы, войти в меню Диаграмма и выбрать пункт Исходные данные . В зависимости от количества введенных данных установить номер последней строки в полях значений и подписи оси X.

- Список использованной литературы:

1. А. П. Микляев “Настольная книга пользователя IBM PC”.

2. Кенин и др. “Использование MS Office”.

3. «Как работать с Microsoft Office » // Microsoft Press , официальное издание, 1999 г.

4. Прикладные программы Office .

5. Справка по программе Microsoft Excel .

6. В. Пасько – Excel

7. Бемер С., Фратер Г.: Microsoft Access для пользователя .

Шаблоны - вещь удобная и полезная! Они позволяют сэкономить время при составлении «шаблонных» документов, которых в повседневной работе добрая половина.

Возможно, в вашей деятельности нужны документы или таблицы, в которых основная часть неизменна, а некоторые фрагменты могут принимать одно из нескольких заранее известных значений. Хорошие примеры - доверенность, договор на оказание услуг, протокол рентгеновского или ультразвукового исследования. В докомпьютерную эпоху заготавливали типографские бланки, в которых оставалось «нужное подчеркнуть, ненужное зачеркнуть» и совсем немного вписать.

В документах Word такую роль играют поля со списком. Идея: щелкнуть мышью на определенном месте в документе, в ответ раскроется список с несколькими вариантами, выбираете мышью нужный - он появился в этом месте. Создавать подобные элементы логично в шаблонах документов. Допустим, вы занимаетесь ультразвуковой диагностикой и решили запастись шаблонами для заключений по основным исследованиям. Их не так уж много, и в каждом стереотипно используются одни и те же фразы.

Инструменты для работы с полями сосредоточены на вкладке Разработчик . По умолчанию она скрыта. Чтобы вкладка отображалась, щелкните правой кнопкой мыши на ленте и в контекстном меню выберите команду Настройка ленты . Откроется диалоговое окно Параметры Word , в котором в группе Основные вкладки нужно установить флажок напротив элемента Разработчик . Нажмите кнопку OK, и на ленте добавится названная вкладка.

  1. Установите курсор туда, где нужно вставить элемент управления. Перейдите на ленте на вкладку Разработчик и нажмите кнопку Элемент управления «раскрывающийся список». В указанное место будет вставлен этот элемент управления.
  2. На вкладке Разработчик нажмите кнопку Свойства элемента управления. Откроется диалоговое окно .
  3. В диалоговом окне Свойства элемента управления содержимым нажмите кнопку Добавить . Откроется дочернее окно Добавить вариант .
  4. В диалоговом окне Добавить вариант в поле Краткое имя введите тот текст, который вы хотите видеть как первый из вариантов выбора в списке. Нажмите кнопку OK . Значение будет добавлено в список.
  5. Таким же образом внесите в список остальные варианты. В качестве последнего из них введите просто один пробел - дальше поясню, зачем.
  6. Добавив в список все варианты, нажмите в диалоговом окне Свойства элемента управления содержимым кнопку OK. Диалоговое окно закроется. Раскрывающийся список готов!

Как он работает? Когда в документе вы щелкаете кнопкой мыши на таком элементе, раскрывается список. Вы выбираете из него подходящий вариант, и это значение отображается на месте поля. Выбирать готовые варианты на порядок быстрее, чем что-то вписывать или даже стирать. Если вдруг вы обнаружили совсем казуистическую картину, и среди заготовок подходящего описания нет, выберите «пустой» вариант (пробел). Правее поля вписывайте, что хотите - вот для этого и нужен вариант, состоящий из одного пробела.

Элемент управления Поле со списком работает почти так же, но с одним отличием - элементы списка могут редактироваться прямо внутри поля. Какой из двух элементов управления лучше подходит к вашей задаче, смотрите по ситуации.

В электронных таблицах Excel тоже предусмотрено нечто подобное. Только там ячейки с выбором одного из возможных значений проще создавать с помощью проверки данных - необходимые инструменты расположены на вкладке Данные в группе Работа с данными . Используя в шаблоне документа элементы управления, мы создаем простейшую форму. Однако можно пойти дальше. Кроме приведенных в качестве примера полей, в документах и таблицах Microsoft Office предусмотрены и другие элементы управления: кнопки, флажки, переключатели, полосы прокрутки. Мы привыкли видеть их в диалоговых окнах, но такие элементы можно встраивать непосредственно в документ.

Смысл работы с формой в том, что флажки устанавливаются, кнопки нажимаются, что-то, возможно, вписывается в поля ввода, а в результате формируются текст документа или содержимое таблицы. В таких «автоматизированных документах» обработкой действий пользователя занимаются макросы (макрокоманды).

Макрос - короткая простая программа, написанная на языке Visual Basic for Applications (VBA). В приложениях Microsoft Office поддержка этого языка заложена изначально, и есть все необходимые инструменты. Например, для начала макрос можно просто записать, не вникая в его внутреннее устройство. Схематично:

  1. На вкладке Разработчик в группе Код нажмите кнопку Записать макрос . Ваши действия с таблицей или документом начинают отслеживаться.
  2. Сразу же в открывшемся диалоговом окне предлагается дать имя макросу и назначить сочетание клавиш, которое в дальнейшем будет запускать этот макрос на выполнение.
  3. Последовательно выполняйте действия, которые вы хотите включить в макрос. Приложение Office запоминает их в виде последовательности команд, ведь в VBA любой операции с текстом или таблицами соответствует определенный код.
  4. Выполнив все необходимые операции, снова нажмите кнопку Записать макрос .

Макрокоманда будет сохранена в шаблоне или документе. Теперь, если вы нажмете сочетание клавиш, заданное на втором шаге, Excel или Word выполнят эту макрокоманду. Все записанные в ней действия программа повторит автоматически.

При необходимости содержимое макрокоманд можно просмотреть, отредактировать и дополнить в редакторе Visual Basic. Он является обязательной частью пакета Microsoft Office. Обычно только что записанный макрос - линейная последовательность команд. При редактировании в макрокоманды часто вставляют логические функции вида «если… то», «и», «или» и т. д. Выполняя их, макрокоманда проверяет и сравнивает значения разных ячеек, положение элементов управления, и в зависимости от этого строит дальнейшее поведение.

Любой макрос легко связать с элементами управления формы, например, с нажатием кнопки или выбором определенного значения в списке. Например, при создании элемента Кнопка сразу же предлагается назначить ему макрокоманду. Многим нужно бывает вставлять в документы «сумму прописью» или «число прописью». Среди стандартных инструментов Office такая функция отсутствует, однако задача легко решается с помощью макроса. Это одно из любимых упражнений для тех, кто начинает осваивать Visual Basic. В Интернете вы найдете тысячи примеров готовых макрокоманд, а также подробные разборы того, как написать подобный макрос самостоятельно.

Благодаря формам и макросам электронную таблицу удается превратить в довольно «умное» и изящное «мини-приложение». Работать оно будет на любом компьютере, на котором установлена программа Excel. Например, так делаются прайс-листы, которые клиент превращает в заказ, отмечая нужные позиции. Или, допустим, форма для расчета пластиковых окон. Исходные данные (перечень деталей и цены) содержатся на одном из листов книги Excel. На другом листе - форма. Вводим размеры, выбираем число и тип створок, производителя фурнитуры, отмечаем флажками и переключателями нужные опции. В результате на третьем листе отобразится полная спецификация для заказа, уже с ценами. Человек, освоивший работу с VBA, потратит на создание такой формы всего несколько часов.

Средства VBA с самого начала задуманы как «программирование для простых пользователей». Много интересных примеров и приемов работы с Word и Excel приводится на сайтах ladyoffice.ru, www.excel2010.ru, excelexpert.ru и др. И, разумеется, в первую очередь полезно обратиться к справочной системе Microsoft Office и разделам официального сайта Microsoft, посвященным работе с этим пакетом.

Зная о том, на что в принципе способны Word и Excel, вы можете поставить задачу тому, кто разработает «умные» шаблоны легко и с удовольствием. Желающие заняться подобным программированием есть везде. За разработку «малой автоматизации» охотно берутся студенты, любые люди, для которых программирование является хобби. Удачное решение - озадачить знакомых школьников! Им - интересные, притом реальные, темы для рефератов по информатике, а вам - полезные инструменты для работы.

Настоящая статья посвящена теме, может быть, и не новой, но, как показывают письма читателей, по-прежнему актуальной - автоматизации приложений Microsoft Office. Многие разработчики в процессе работы над своими проектами (неважно, с помощью какого средства разработки - Delphi, C++Builder, Visual Basic…) нередко применяют сервисы, предоставляемые Microsoft Office, например построение сводных таблиц и диаграмм с помощью Microsoft Excel, генерацию и печать документов с помощью Microsoft Word и т.д. Нередко пользователи, привыкшие использовать приложения Microsoft Office в повседневной работе, сами настаивают на применении в приложениях таких сервисов либо просто на сохранении отчетов и других документов в одном из форматов Microsoft Office. Отметим, что потенциальные пожелания подобного рода компанией Microsoft учтены достаточно давно - практически все, что в состоянии сделать пользователь любого приложения Microsoft Office с помощью меню, клавиатуры и инструментальной панели, может быть произведено и автоматически, то есть либо из VBA-программы, либо из приложения, созданного с помощью одного из средств разработки. Иными словами, приложения Microsoft Office являются программируемыми. Программируемость в общем случае означает возможность управления данным приложением с помощью макроязыков либо с помощью других приложений. Все компоненты Microsoft Office поддерживают один и тот же макроязык: Visual Basic for Applications (VBA), позволяющий создавать приложения непосредственно внутри документов Office (это называется «решения на базе Microsoft Office»). Управление же компонентами Office из других приложений осуществляется с помощью автоматизации (Automation, ранее - OLE Automation) - все приложения Microsoft Office являются серверами автоматизации (или COM-серверами). Для создания таких приложений пригодны любые средства разработки, позволяющие создавать контроллеры автоматизации (COM-клиенты). Наиболее часто для этой цели используется Visual Basic, но это могут быть и Delphi, и C++Builder, и Visual C++. Однако прежде чем обсуждать возможности тех или иных средств разработки, следует разобраться, что такое автоматизация.

Коротко об автоматизации

Автоматизация - это одна из возможностей, предоставляемых технологией Microsoft COM (Component Object Model). Не вдаваясь в подробности реализации этой технологии, заметим, что она используется приложениями (называемыми COM-серверами) для предоставления доступа к их объектам, а также к свойствам и методам этих объектов другим приложениям (называемым COM-клиентами), каковыми могут быть и средства разработки. Например, текстовый процессор, будучи COM-сервером, может предоставлять другим приложениям доступ к документу, абзацу, закладке с помощью соответствующих объектов. Для именования (и опознания) COM-серверов обычно используются специальные строковые обозначения - программные идентификаторы (Programmatic Identifier, ProgID). Они нужны для того, чтобы операционная система могла с помощью этих идентификаторов определить, в каком именно каталоге (или на каком компьютере локальной сети, если используется тот или иной способ удаленного доступа к серверу) расположен исполняемый файл сервера автоматизации, и запустить его на выполнение. О том, какие именно программные идентификаторы применяются для того или иного приложения Microsoft Office, будет сказано в разделах, посвященных этим приложениям.

Объекты автоматизации с точки зрения программирования мало чем отличаются от обычных объектов, знакомых нам из теории и практики объектно-ориентированного программирования. Как и обычные объекты, они обладают свойствами и методами. Свойство - это характеристика объекта; например, свойством абзаца (объект Paragraph) может быть его стиль (Style). Методом называется действие, которое можно выполнить с объектом (например, можно сохранить документ с помощью метода SaveAs объекта Document).

Нередко серверы автоматизации содержат наборы однотипных объектов, называемых коллекциями. Например, текстовый процессор может содержать коллекцию документов, а каждый документ - коллекцию абзацев.

Как узнать, какие объекты доступны в серверах автоматизации? Для этой цели в комплект поставки любого сервера автоматизации входит документация и файлы справки, описывающие их объектную модель. Если брать приложения Microsoft Office 2000, то это справочные файлы для программистов на Visual Basic for Applications VBAxxx9.CHM (для Microsoft Office 97 - VBxxx8.HLP соответственно). Отметим, что по умолчанию они не устанавливаются, так как нужны разработчикам, а не рядовым пользователям.

Вся информация об объектах, необходимая контроллерам автоматизации, содержится в библиотеках типов. Библиотеки типов хранятся в специальном бинарном формате и обычно представлены в виде файлов с расширениями *.olb или *.tlb, а также могут содержаться внутри исполняемых файлов (*.exe) или динамически загружаемых библиотек (*.dll). Библиотеки типов можно просматривать с помощью утилиты OleView, входящей в состав Microsoft Platform SDK, а средства разработки фирмы Borland содержат свои собственные утилиты просмотра библиотек типов.

Заканчивая это более чем краткое введение в автоматизацию, остановимся также на понятии связывания. Связыванием называется способ, с помощью которого переменная или класс приложения-контроллера ссылается на объект автоматизации. Таких способов существуют два: позднее связывание и раннее связывание.

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

Раннее связывание означает, что реальная ссылка на объект автоматизации появляется уже на этапе компиляции. Поэтому в коде приложения-контроллера требуется ссылка на библиотеку типов (или на специальный модуль, являющийся интерфейсом к ней), и это приводит к генерации в этом приложении классов с теми же свойствами и методами, что и у объектов автоматизации, что делает возможными синтаксическую проверку имен методов на этапе компиляции и доступ к именованным константам, содержащимся в библиотеке типов. Отметим, однако, что далеко не все средства разработки, поддерживающие позднее связывание, осуществляют также поддержку раннего связывания.

Закончив экскурс в COM и автоматизацию, вернемся к вопросу о том, какие средства разработки удобно применять для создания контроллеров автоматизации.

VBA и средства разработки контроллеров автоматизации

Как уже было сказано выше, контроллеры автоматизации можно создавать с помощью различных средств разработки, и если вы уже используете какое-либо из инструментальных средств, поддерживающих создание контролеров автоматизации, можно именно им и воспользоваться. Единственное, что следует сделать - это узнать, поддерживается ли вашим средством разработки ранее связывание, если вы планируете его использовать. Примеры простейших контроллеров автоматизации (как правило, для Microsoft Word или Microsoft Excel), дающие представление о том, как вызываются методы сервера, обычно можно найти в комплекте поставки большинства современных средств разработки.

Освоение объектной модели автоматизируемого сервера можно начать с записи необходимой последовательности действий в виде макроса с помощью VBА. Создать макрос можно, выбрав из меню приложения Microsoft Office пункт Tools | Macro |Record New Macro. Просмотр полученного макроса в редакторе кода VBA обычно позволяет понять, как должен выглядеть код, реализующий эту последовательность действий.

Обсудив возможные средства разработки контроллеров автоматизации, можно наконец перейти к самим приложениям Microsoft Office, к их объектным моделям и к их использованию. В качестве средства разработки для приведенных ниже примеров используется Borland Delphi 5, но поскольку в них приводится последовательность вызова свойств и методов объектов Microsoft Office, перенос кода на другие языки программирования не должен вызвать особых затруднений. Если специально не оговорено, в данной статье во всех примерах используется раннее связывание.

Объектные модели Microsoft Office

Как было сказано выше, приложения Microsoft Office предоставляют контроллерам автоматизации доступ к своей функциональности с помощью своей объектной модели, представляющей собой иерархию объектов. Объекты могут предоставлять доступ к другим объектам посредством коллекций.

В качестве иллюстрации того, как выглядит иерархия объектов Microsoft Office, приведем небольшой фрагмент объектной модели Microsoft Word (рис.1):

Здесь мы воспользовались функциями GetActiveOleObject и CreateOleObject для подключения к уже запущенной копии приложения-сервера или запуска новой, если сервер не запущен, что приводит к тому, что в вариантную переменную помещается ссылка на объект Application соответствующего сервера.

Приведенная часть кода контроллера в других средствах разработки может выглядеть по-другому - она не имеет прямого отношения к методам объектов Office, так как обусловлена правилами вызова стандартных функций OLE в Delphi (за исключением вызовов методов Visible и Quit объекта Application). А вот все то, что должно быть вставлено вместо комментария «Здесь выполняются другие действия с объектами приложения Office», в разных средствах разработки должно выглядеть более или менее однотипно - используя созданную вариантную переменную, мы манипулируем методами и свойствами объекта Application.

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

несмотря на то что метод Quit объекта Application в случае некоторых приложений Microsoft Office (например, Microsoft Word) имеет параметры.

При использовании же раннего связывания, например при создании контроллеров с помощью Delphi, следует более строго подходить к определению параметров - их число и тип должны соответствовать описанию методов в библиотеке типов. Например, в случае раннего связывания корректный код на Delphi для закрытия документа Word со значениями всех параметров по умолчанию будет иметь вид:

App.Quit(EmptyParam, EmptyParam, EmptyParam);

Исключением из этого правила является Visual Basic - это средство разработки позволяет не задумываться о числе параметров методов при написании кода.

Обсудив общие принципы создания контроллеров автоматизации и узнав, как это делается средствами Borland Delphi, мы можем перейти к рассмотрению автоматизации конкретных приложений Microsoft Office. Начнем с одного из самого популярных компонентов этого пакета - с Microsoft Word.

Программные идентификаторы и объектная модель Microsoft Word

Для приложения-контроллера доступны непосредственно следующие объекты:

Все остальные объекты Word являются так называемыми внутренними объектами. Это означает, что они не могут быть созданы сами по себе; так, объект Paragraph (абзац) не может быть создан отдельно от содержащего его документа.

Если вспомнить, что основное назначение Word - работа с документами, можно легко понять иерархию его объектной модели (фрагмент ее был показан на рис. 1). Основным объектом в ней, как иво всех других приложениях Microsoft Office, является объект Application, содержащий коллекцию Documents объектов типа Document. Каждый объект типа Document содержит коллекцию Paragraphs объектов типа Paragraph, Bookmarks типа Bookmark, Characters типа Character и т.д. Манипуляция документами, абзацами, символами, закладками реально осуществляется путем обращения к свойствам и методам этих объектов.

Ниже мы рассмотрим наиболее часто встречающиеся задачи, связанные с автоматизацией Microsoft Word. Если же вам встретилась задача, не совпадающая ни с одной из перечисленных, вы можете попытаться найти подходящий пример на Visual Basic в справочном файле VBAWRD9.CHM, либо, как уже было сказано выше, записать необходимую последовательность действий в виде макроса и проанализировать его код.

Создание и открытие документов Microsoft Word

Для создания примеров использования Microsoft Word можно использовать код создания контроллера, приведенный выше, и модифицировать его, заменяя комментарии кодом, манипулирующим свойствами и методами объекта Word.Application. Мы начнем с создания и открытия документов.

Создать новый документ Word можно, используя метод Add коллекции Documents объекта Application:

App.Documents.Add;

Как создать нестандартный документ? Очень просто - нужно указать имя шаблона в качестве параметра метода Add:

App.Documents.Add(‘C:\Program Files\ _ Microsoft Office\Templates\1033\Manual.dot’);

Для открытия уже существующего документа следует воспользоваться методом Open коллекции Documents:

App.Documents.Open(‘C:\MyWordFile.doc’);

Отметим, что свойство ActiveDocument объекта Word.Application указывает на текущий активный документ среди одного или нескольких открытых. Помимо этого к документу можно обращаться по его порядковому номеру с помощью метода Item; например ко второму открытому документу можно обратиться так:

App.Documents.Item(2)

Отметим, что нумерация членов коллекций в Microsoft Office начинается с единицы.

Сделать документ активным можно с помощью метода Activate:

App.Documents.Item(1).Activate;

Следующее, чему следует научиться - это сохранять документ Word и закрывать сам Word.

Сохранение, печать и закрытие документов Microsoft Word

App.Documents.Item(2).Close;

App.ActiveDocument.Close ;

Метод Close имеет несколько необязательных (в случае позднего связывания) параметра, влияющих на правила сохранения документа. Первый из них влияет на то, сохраняются ли внесенные в документ изменения, и принимает три возможных значения (соответствующие константы рекомендуется описать в приложении. См. листинг 2):

Третий параметр принимает значения True или False и влияет на то, пересылать ли документ следующему пользователю по электронной почте. Если эта функциональность не применяется, можно проигнорировать этот параметр.

Таким образом, при использовании этих параметров закрыть документ можно, например, так:

App.ActiveDocument.Close(wdSaveChanges, _ wdPromptUser) ;

App.ActiveDocument.Save;

Этот метод также имеет несколько необязательных (в случае позднего связывания) параметров, первый из которых равен True, если документ сохраняется автоматически, и False, если нужно выводить диалоговую панель для получения подтверждения пользователя о сохранении изменений (если таковые были сделаны). Второй параметр влияет на формат сохраняемого документа, и список его возможных значений совпадает со списком значений второго параметра метода Close.

Напоминаем, что закрыть сам Word можно с помощью метода Quit объекта Word.Application. Этот метод имеет в общем случае три параметра, совпадающих с параметрами метода Close объекта Document.

Вывод документа на устройство печати можно осуществить с помощью метода PrintOut объекта Document, например:

App.ActiveDocument.PrintOut;

Если нужно изменить параметры печати, следует указать значения соответствующих параметров метода PrintOut (в случае Microsoft Word их около двадцати).

Вставка текста и объектовв документ и форматирование текста

Для создания абзацев в документе можно использовать коллекцию Paragraphs объекта Document, представляющую набор абзацев данного документа. Добавить новый абзац можно с помощью метода Add этой коллекции:

App.ActiveDocument.Paragraphs.Add;

Для вставки собственно текста в документ, тем не менее, применяется не объект Paragraph, а объект Range, представляющий любую непрерывную часть документа (в том числе и вновь созданный абзац). Этот объект может быть создан разными способами. Например, можно указать начальный и конечный символы диапазона (если таковые имеются в документе):

Var Rng: Variant; ... Rng:= App.ActiveDocument.Range(2,4); //со 2-го по 4-й символы

или указать номер абзаца (например, только что созданного):

Rng:= App.ActiveDocument.Paragraphs.Item(1).Range;

или указать несколько абзацев, следующих подряд:

Rng:= App.ActiveDocument.Range _ (App.ActiveDocument.Paragraphs.Item(3).Range.Start,_ App.ActiveDocument.Paragraphs.Item(5).Range.End)

Вставить текст можно с помощью методов объекта Range InsertBefore (перед диапазоном) или InsertAfter (после диапазона), например:

Rng.InsertAfter(‘Это вставляемый текст’);

Помимо объекта Range текст можно вставлять с помощью объекта Selection, являющийся свойством объекта Word.Application и представляющий собой выделенную часть документа (этот объект создается, если пользователь выделяет часть документа с помощью мыши, и может быть также создан с помощью приложения-контроллера). Сам объект Selection можно создать, применив метод Select к объекту Range, например:

Var Sel: Variant; ... App.ActiveDocument.Paragraphs.Item(3).Range.Select;

В приведенном выше примере в текущем документе выделяется третий абзац.

Если мы хотим вставить строку текста в документ либо вместо выделенного фрагмента текста, либо перед ним, это можно сделать с помощью следующего фрагмента кода:

Var Sel: Variant; ... Sel:= App.Selection; Sel.TypeText(‘Это текст, которым мы заменим _ выделенный фрагмент’);

Отметим, что если свойство Options.ReplaceSelection объекта Word.Application равно True, выделенный текст будет заменен на новый текст (этот режим действует по умолчанию); если же нужно, чтобы текст был вставлен перед выделенным фрагментом, а не вместо него, следует установить это свойство равным False:

App.Options.ReplaceSelection:= False;

Символ конца абзаца при использовании объекта Selection может быть вставлен с помощью следующего фрагмента кода:

Sel.TypeParagraph;

К объекту Selection, так же как и к объекту Range, можно применить методы InsertBefore и InsertAfter. В этом случае, в отличие от предыдущего, вставляемый текст станет частью выделенного фрагмента текста.

С помощью объекта Selection, используя его свойство Font и свойства объекта Font, такие как Bold, Italic, Size,…, можно отформатировать текст. Например, таким образом можно вставить строку, выделенную жирным шрифтом:

Sel.Font.Bold:= True; Sel.TypeText(‘Это текст, который мы выделим _ жирным шрифтом.’); Sel.Font.Bold:= False; Sel.TypeParagraph;

Для наложения на вставляемый текст определенного заранее стиля можно использовать свойство Style этого же объекта, например:

Sel.Style:= ‘Heading 1’; Sel.TypeText(‘Это текст, который станет _ заголовком’); Sel.TypeParagraph;

Нередко документы Word содержат данные других приложений. Простейший способ вставить такие данные в документ - использовать метод Paste объекта Range:

Var Rng: Variant; ... Rng:= App.Selection.Range; Rng.Collapse(wdCollapseEnd); Rng.Paste;

Естественно, в этом случае в буфере обмена уже должны содержаться вставляемые данные.

Если нужно поместить в буфер обмена часть документа Word, это можно сделать с помощью метода Copy объекта Range:

Var Rng: Variant; ... Rng:= App.Selection.Range; Rng.Copy;

Следующее, чему нужно научиться - перемещению курсора в нужное место текста, чем мы и займемся в следующем разделе.

Перемещение курсора по тексту

Используя метод Collapse, можно «сжать» объект Range или объект Selection, сократив его размер до нуля символов:

Rng.Collapse(wdCollapseEnd);

Параметр этого метода указывает, в начале или в конце исходного фрагмента окажется новый объект Range или Selection. Если вы используете позднее связывание и ваше средство разработки - не Visual Basic, нужно определить в приложении соответствующие константы:

Const wdCollapseStart = $00000001; //новый объект находится в начале фрагмента wdCollapseEnd = $00000000; //новый объект находится в конце фрагмента

Перемещать курсор по тексту можно с помощью метода Move объектов Range и Selection. Этот метод имеет два параметра. Первый указывает на то, в каких единицах измеряется перемещение - в символах (по умолчанию), словах, предложениях, абзацах и др. Второй параметр указывает, на сколько единиц при этом нужно переместиться (это число может быть и отрицательным; по умолчанию оно равно 1). Например, следующий фрагмент кода:

Rng.Move;

приведет к перемещению курсора на один символ вперед, а

Rng.Move(wdParagraph,3);

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

Const //Единицей перемещения является: wdCharacter = $00000001; //символ wdWord = $00000002; //слово wdSentence = $00000003; //предложение wdParagraph = $00000004; //абзац wdStory = $00000006; //часть документа //напр., колонтитул, //оглавление и др.) wdSection = $00000008; //раздел wdColumn = $00000009; //колонка таблицы wdRow = $0000000A; //строка таблицы wdCell = $0000000C; //ячейка таблицы wdTable = $0000000F; //таблица

Нередко для перемещения по тексту используются закладки. Создать закладку в текущей позиции курсора можно путем добавления члена коллекции Bookmarks объекта Document c помощью метода Add, указав имя закладки в качестве параметра, например:

App.ActiveDocument.Bookmarks.Add(‘MyBookmark’);

Проверить существование закладки в документе можно с помощью метода Exists, а переместиться на нее - с помощью метода Goto объектов Document, Range или Selection:

Rng:= App.ActiveDocument.Goto(wdGoToBookmark, wdGoToNext,‘MyBookmark’); Rng.InsertAfter(‘Текст, вставленный после закладки’);

Значения констант для этого примера таковы:

WdGoToBookmark = $FFFFFFFF; //перейти к закладке wdGoToNext = $00000002; //искать следующий объект в тексте

Отметим, что с помощью метода Goto можно перемещаться не только на указанную закладку, но и на другие объекты (рисунки, грамматические ошибки и др.), и направление перемещения тоже может быть различным. Поэтому список констант, которые могут быть использованы в качестве параметров данного метода, довольно велик.

Создание таблиц

Создавать таблицы можно двумя способами. Первый заключается в вызове метода Add коллекции Tables объекта Document и последовательном заполнении ячеек данными. Этот способ при позднем связывании работает довольно медленно.

Второй способ, намного более «быстрый», заключается в создании текста из нескольких строк, содержащих подстроки с разделителями (в качестве разделителя можно использовать любой или почти любой символ, нужно только, чтобы он заведомо не встречался в данных, которые будут помещены в будущую таблицу), и последующей конвертации такого текста в таблицу с помощью метода ConvertToTable объекта Range. Ниже приведен пример создания таблицы из трех строк и трех столбцов этим способом (в качеcтве разделителя, являющегося первым параметром метода ConvertToTable, используется запятая):

Var Rng: Variant; ... Rng:= App.Selection.Range; Rng.Collapse(wdCollapseEnd); Rng.InsertAfter(‘1, 2, 3’); Rng.InsertParagraphAfter; Rng.InsertAfter(‘4,5,6’); Rng.InsertParagraphAfter; Rng.InsertAfter(‘7,8,9’); Rng.InsertParagraphAfter; Rng.ConvertToTable(‘,’);

Отметим, что внешний вид таблицы можно изменить с помощью свойства Format, а также с помощью свойств коллекции Columns, представляющей колонки таблицы, и коллекции Rows, представляющей строки таблицы объекта Table.

Обращение к свойствам документа

Свойства документа можно получить с помощью коллекции BuiltInDocumentProperties объекта Document, например:

Memo1.Lines.Add(‘Название - ‘ + _ App.ActiveDocument.BuiltInDocumentProperties .Value); Memo1.Lines.Add(‘Автор - ‘ + _ App.ActiveDocument.BuiltInDocumentProperties . _ Value); Memo1.Lines.Add(‘Шаблон - ‘ + _ App.ActiveDocument.BuiltInDocumentProperties . _Value)

Константы, необходимые для обращения к свойствам документа по имени, приведены в листинге 3 .

Итак, в данном разделе мы изучили основные операции, которые наиболее часто применяются при автоматизации Microsoft Word. Естественно, возможности автоматизации Word далеко не исчерпываются приведенными примерами, однако я надеюсь, что, руководствуясь основными принципами создания контроллеров Word, изложенными в данной статье, и соответствующим справочным файлом, вы сможете ими воспользоваться - мы с вами уже убедились, что это вовсе не так сложно.Программные идентификаторы и объектная модель Microsoft Excel

Существует три типа объектов Excel, которые могут быть созданы непосредственно с помощью приложения-контроллера. Эти объекты и соответствующие им программные идентификаторы перечислены ниже.

Все остальные объекты Excel являются так называемыми внутренними объектами.

Небольшой фрагмент объектной модели Microsoft Excel изображен на рис.2:

Основным в объектной модели Excel является объект Application, содержащий коллекцию Workbooks объектов типа WorkBook. Каждый объект типа WorkBook содержит коллекцию WorkSheets-объектов типа WorkSheet, Charts типа Chart и др. Манипуляция рабочими книгами, их листами, ячейками, диаграммами реально осуществляется путем обращения к свойствам и методам этих объектов.

Ниже мы рассмотрим наиболее часто встречающиеся задачи, связанные с автоматизацией Microsoft Excel. Если вам встретилась задача, не совпадающая ни с одной из перечисленных, вы можете попытаться найти подходящий пример на Visual Basic в справочном файле VBAXL9.CHM, либо, как и в случае Microsoft Word, записать соответствующий макрос и проанализировать его код.

Запуск Microsoft Excel, создание и открытие рабочих книг

Для создания примеров использования Microsoft Excel можно использовать код создания контроллера, приведенный в разделе «Общие принципы создания контроллеров автоматизации», заменив первый оператор в приведенном примере на следующий:

AppProgID:= ‘Excel.Application’;

и заменить комментарии кодом, манипулирующим свойствами и методами объекта Excel.Application. Отметим, однако, что подключение контроллера автоматизации к имеющейся версии Excel с помощью метода GetActiveOleObject может привести к тому, что вся клиентская часть Excel окажется невидимой (это происходит, если имеющаяся копия Excel запущена в режиме, когда ее пользовательский интерфейс недоступен). Причины подобного поведения автору неизвестны. Поэтому, если существует вероятность возникновения подобной ситуации, лучше упростить код создания контроллера и всегда создавать новую копию Excel.

Изучение создания контроллеров Excel мы начнем с создания и открытия рабочих книг.

Создать новую рабочую книгу Excel можно, используя метод Add коллекции Workbooks объекта Application:

App.WorkBooks.Add;

Для создания рабочей книги на основе шаблона следует указать его имя в качестве первого параметра метода Add:

App.WorkBooks.Add(‘C:\Program Files\Microsoft _ Office\Templates\1033\invoice.xlt’);

В качестве первого параметра этого метода можно также использовать следующие константы:

Const xlWBATChart = $FFFFEFF3; //рабочая книга состоит из листа с диаграммой xlWBATWorksheet = $FFFFEFB9; //рабочая книга состоит из листа с данными

В этом случае рабочая книга будет содержать один лист типа, заданного указанной константой (график, обычный лист с данными и др.)

Для открытия уже существующего документа следует воспользоваться методом Open коллекции WorkBooks:

App.Documents.Open(‘C:\MyExcelFile.xls’);

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

App.WorkBooks

Обратите внимание на то, что в Delphi при использовании позднего связывания синтаксис, используемый для обращения к членам коллекций объектов Excel, отличен от синтаксиса, используемого для обращения к объектам Word - в случае Word мы использовали метод Item, а в случае Excel мы обращаемся к членам коллекции как к элементам массива. Если же вы используете Visual Basic, синтаксис, применяемый для обращения к членам коллекций, будет одинаков для всех коллекций Microsoft Office.

Сделать рабочую книгу активной можно с помощью метода Activate:

App.WorkBooks.Activate;

Следующее, чему следует научиться - это сохранять рабочие книги в файлах.

Сохранение, печать и закрытие рабочих книг Microsoft Excel

Закрытие документа может быть осуществлено с помощью метода Close:

App.WorkBooks.Close;

App.ActiveWorkBook.Close;

Метод Close имеет несколько необязательных (в случае позднего связывания) параметров, влияющих на правила сохранения рабочей книги. Первый из параметров принимает значения True или False и влияет на то, сохранять ли изменения, внесенные в рабочую книгу. Второй параметр (типа Variant) - имя файла, в котором нужно сохранить рабочую книгу (если в нее были внесены изменения). Третий параметр, также принимающий значения True или False, влияет на то, следует ли пересылать документ следующему пользователю по электронной почте, и может быть проигнорирован, если эта функциональность не используется.

App.ActiveWorkBook.Close(True,’C:\MyWorkBook.xls’);

App.ActiveWorkBook.Save;

App.ActiveWorkBook.SaveAs(‘C:\MyWorkBook.xls’);

Метод SaveAs имеет более десятка параметров, влияющих на то, как именно сохраняется документ (под каким именем, с паролем или без него, какова кодовая страница для содержащегося в ней текста и др.).

Закрыть сам Excel можно с помощью метода Quit объекта Excel.Application. В случае Excel этот метод параметров не имеет.

Вывод документа Excel на устройство печати можно осуществить с помощью метода PrintOut объекта WorkBook, например:

App.ActiveWorkBook.PrintOut;

Если нужно изменить параметры печати, следует указать значения соответствующих параметров метода PrintOut (в случае Excel их восемь).

Обращение к листам и ячейкам

Обращение к листам рабочей книги производится с помощью коллекции WorkSheets объекта WorkBook. Каждый член этой коллекции представляет собой объект WorkSheet. К члену этой коллекции можно обратиться по его порядковому номеру, например:

App.WorkBooks.WorkSheets.Name:= _ ‘Страница 1’;

Приведенный выше пример иллюстрирует, как можно изменить имя листа рабочей книги.

К листу рабочей книги можно обратиться и по имени, например:

App.WorkBooks.WorkSheets[‘Sheet1’].Name:= _ ‘Страница 1’;

Обращение к отдельным ячейкам листа производится с помощью коллекции Cells объекта WorkSheet. Например, добавить данные в ячейку B1 можно следующим образом:

App.WorkBooks.WorkSheets[‘Sheet1’].Cells.Value:=’25’;

Здесь первая из координат ячейки указывает на номер строки, вторая - на номер столбца.

Добавление формул в ячейки производится аналогичным способом:

App.WorkBooks.WorkSheets[‘Sheet1’] _ .Cells.Value:= ‘ =SUM(B1:B2)’;

Очистить ячейку можно с помощью метода ClearContents.

Форматирование текста в ячейках производится с помощью свойств Font и Interior объекта Cell и их подсвойств. Например, следующий фрагмент кода выводит текст в ячейке красным жирным шрифтом Courier кегля 16 на желтом фоне:

App.WorkBooks.WorkSheets.Cells.Interior _ .Color:= clYellow; App.WorkBooks.WorkSheets.Cells.Font _ .Color:= clRed; App.WorkBooks.WorkSheets.Cells _ .Font.Name:= ‘Courier’; App.WorkBooks.WorkSheets.Cells _ .Font.Size:= 16; App.WorkBooks.WorkSheets.Cells _ .Font.Bold:= True;

Программный идентификатор

Создание программного кода для автоматизации определенных процедур открывает практически безграничные возможности по развитию и применению приложений на основе Excel.

Запись макроса

Первое средство автоматизации, с которым сталкивается пользователь – это, так называемая, запись макроса. После включения этой записи Excel автоматически создает программный код с последовательностью производимых пользователем операций.

Оценивая оригинальность решения, практическая польза данной функции, с нашей точки зрения, весьма сомнительна. Дело в том, что повторное использование записанного макроса без внесения изменений за редким исключением невозможно. Неподготовленный пользователь обычно видит просто набор команд, но не получает ожидаемый результат от записанного макроса. К тому же у пользователя складывается ошибочное мнение о простоте написания программ на VBA.

Реальное программирование не имеет с записью макросов ничего общего. Требуется знать как основы языка программирования, так и изучить объектную модель Excel. Кстати, как раз для последнего случая функция «запись макроса» несет определенную пользу в качестве дополнения к справочной системе. В автоматически записанном коде можно быстро найти нужные свойства или методы того или иного объекта Excel.

Макросы Excel 4.0

С этим мало, кто сталкивался на практике, но, в версии Excel 4.0 имелась возможность создавать макрокоманды и выполнять их последовательности. Для этого предназначен специальный тип листа рабочей книги. Макросы Excel 4.0 (XLM) поддерживаются во всех версиях до настоящего времени.

Попробуйте вставить «международный лист макросов» и написать в нем 2 команды (см. картинку). Затем запустить этот макрос через указание ячейки (проще всего запуск макросов вызывается через сочетание клавиш Alt+F8 ):

«Международный лист макросов» необходим для записи команд на английском языке, имеются также аналоги русских команд.

Макросы XLM позволяют выполнять любые команды Excel, реализованные на тот момент, а также формировать и открывать диалоговые окна. С конца 90х годов Microsoft настоятельно рекомендует переписать XLM-макросы в Excel-приложениях на программы VBA. Тем не менее, функциональность старых макросов полностью поддерживается до сих пор.

Visual Basic for Applications 5.0

Первая версия Excel, поддерживающая язык программирования Visual Basic for Applications появилась в 1993м году – Excel 5.0. Первоначально редактор кода представлял собой специальный тип листа рабочей книги.

Поддерживалась полная объектная модель Excel, пользователь мог разделять код на программные модули. Впервые появилась возможность визуального создания и изменения диалоговых форм - коллекция DialogSheets . Для данных форм существуют элементы управления с собственными обработчиками событий, сами формы могут быть открыты только в модальном режиме. С помощью DialogSheets уже можно было создавать достаточно сложные варианты пользовательского интерфейса. В дальнейшем функциональность DialogSheets была заменена на пользовательские формы UserForms . Старые диалоговые формы в версиях, начиная с Excel 2000, поддерживаются только в целях обратной совместимости – на них даже отсутствует описание в справочной системе.

VBA 6

Excel 2000 (порядковый номер версии 9.0) включает в себя новую версию языка Visual Basic for Applications. В нем появилась поддержка пользовательских классов, форм и процедур обработчиков событий. Синтаксис языка VBA унифицирован с основными приложениями Microsoft Office (Excel, Word, Access, PowerPoint). Несколько выделяется, пожалуй, Microsoft Access, который поддерживает собственный редактор форм.

Основные новшества VBA6:

  • Пользовательские классы.
  • Доступ к стандартным обработчикам событий листов и рабочей книги.
  • Возможность обработки событий с использованием ключевого слова WithEvents .
  • Пользовательские формы UserForms с новыми элементами управления.
  • Возможность использования внешних ActiveX-контролов и библиотек кода.
  • Несколько новых полезных функций (например, Join и Split ).

Кроме того, на основе новой версии VBA существовали специальные версии Excel для разработчиков, поддерживающие создание COM DLL. Подробнее см.статью Надстройки .

Использование внешних библиотек

Внешние библиотеки формата COM DLL (ActiveX DLL) подключаются через использование ссылок в проекте VBA (меню Tools\References ). Визуальные элементы управления (.ocx-файлы) подключаются аналогичным способом при выборе пункта меню Tools \ Additional Controls . При использовании ссылок на внешние файлы может потребоваться уделить особое внимание целостности проекта при его распространении на другие компьютеры. Стандартные библиотеки (например, MSCOMCTL.OCX) обычно корректно переподключаются на клиентских компьютерах, автоматически подбирая ссылку на последнюю версию. С нестандартными библиотеками и собственными ActiveX-контролами могут возникнуть проблемы. Для проверки подключения внешних COM DLL теоретически можно использовать коллекцию Application.VBE.ActiveVBProject.References . Но на практике объект VBE лучше не использовать в приложениях, так как доступ к нему может быть ограничен настройками Excel (начиная с версии 2007).

Технология COM позволяет обеспечить доступ к внешним библиотекам и приложениям без использования жестких ссылок. Для этого используется, так называемое, позднее связывание объектов. В качестве интерфейса IUnknown в VBA выступает тип Object ; для создания экземпляра объекта используется стандартная процедура CreateObject , а для получения имеющегося экземпляра – GetObject .

Dim oWord As Object Set oWord = CreateObject("Word.Document") oWord.Application.Visible = True

Для вызова функций и процедур динамических библиотек Windows (Win32 DLL) в любой версии VBA поддерживается конструкция Declare . Например:

Public Declare Function GetUserName Lib "advapi32.dll" Alias "GetUserNameA" (ByVal sBuf As String, ByRef iSize As Long) As Boolean

После подобного объявления функцию можно вызывать обычным способом как любую функцию VBA.

Кроме стандартных Win API процедур и функций, можно разрабатывать собственные DLL и подключать их в проекты VBA аналогичным способом.

VSTO

Microsoft предоставляет средства автоматизации Excel в других своих продуктах для разработчиков. Так, существует, например, шаблон проекта ActiveX DLL Visual Basic 6.0, адаптированный для Microsoft Office. В настоящее время Microsoft поддерживает направление разработки приложений, основанное на технологии.NET - Visual Studio Tools for Office (VSTO). VSTO представляет из себя набор шаблонов проектов и средств поддержки выполнения Visual Studio .NET, предназначенных для разработки библиотек и надстроек различных приложений Microsoft Office.

Пример исходного кода проекта.NET для Excel можно найти в разделе Прочее .

Автоматизация Excel для внешних приложений

Подобно вызову внешних COM DLL, Excel сам может являться объектом автоматизации для других программ. Например, вы можете вызывать и управлять рабочей книгой с помощью vbs-скриптов. Например, создайте текстовый файл следующего содержания:

Set oExcelApp = CreateObject("Excel.Application") oExcelApp.Visible = True Set oWorkbook = oExcelApp.Workbooks.Add Set oWorksheet = oWorkbook.Worksheets.Add oWorksheet.Cells(1,1)="Hello"

Сохраните этот файл с расширением vbs, а затем откройте. При успешном запуске будет открыт Excel, создана рабочая книга и лист, на котором появится текст «Hello» в верхней левой ячейке. Аналогичным образом можно создавать очень сложные программы, управляющие Excel-файлами. При переносе кода в vbs-скрипт (или другое приложение) первоначально удобнее его создавать и отлаживать код в редакторе VBA самого Excel – в нем имеется полная информация о синтаксисе методов и свойств встроенных объектов. В связи с этим хорошей практикой при программировании на VBA является использование полных путей доступа к объектам: например, вместо ActiveWorkbook прописывать Application.ActiveWorkbook . Такой стиль программирования избавит вас от скрытых ошибок при переносе кода в любые другие приложения.

Безопасность файлов

Microsoft, проявляя заботу о пользователях, всячески пытается предотвратить случайное распространение компьютерных вирусов, написанных на VBA. Основываясь на собственном опыте, можем предположить, что такая «забота» зачастую приносит больше проблем пользователям, чем повышает безопасность их работы. В нашей практике работы с файлами Excel (начиная с 1995го года) нам ни разу не встречались макро-вирусы , написанные специально для приложений Excel. При этом мы не исключаем потенциальную возможность написания таких вирусов (даже можем попытаться что-то подобное создать), только непонятно зачем это кому-нибудь нужно. Использование тех же скриптовых языков гораздо более серьезная угроза для операционной системы. Не говоря уже о том, что Visual Basic – это не самое подходящее средство для написания компьютерных вирусов.

Но плохо даже не то, что Microsoft перестраховывается в поиске потенциальных угроз. Огорчает непоследовательность и постоянное усложнение процедуры управления безопасностью проектов Excel-VBA. Кроме того, явно прослеживается тенденция, направленная на использование цифровой подписи надежных издателей. При этом получение права подписи является платной услугой, а сама технология имеет ошибки в реализации с Excel-файлами (подробнее см.следующий раздел).

Вот как исторически изменялись характеристики безопасности:

  • Excel 4.0-7.0 – нет полной уверенности, но похоже, что не было защиты от макровирусов, макросы запускались без дополнительных предупреждений.
  • Excel 97 (8.0 ) – появился флажок защиты в общих параметрах.
  • Excel 2000 (9.0) – появился специальный диалог в меню Сервис \ Макросы с выбором одного из трех уровней безопасности и списком надежных сертификатов. По умолчанию установлен средний уровень безопасности. То есть при открытии файлов с макросами пользователю самому предлагается решить, насколько это безопасно. Надстройки Excel по умолчанию активизируются без дополнительных предупреждений.
  • Excel 2002 (10.0) – добавился еще один «самый высокий» уровень безопасности, разрешающий запуск макросов, подписанных надежным издателем, и только из надежных источников. По умолчанию установлен средний уровень безопасности.
  • Excel 2003 (11.0) – то же, что в предыдущей версии, но по умолчанию устанавливается высокий уровень безопасности. То есть макросы отключаются без предупреждений.
  • Excel 2007 (12.0) – переписан интерфейс параметров, появился так называемый «Центр управления безопасностью». Уровни безопасности изменились по поведению, хотя их также осталось четыре. По умолчанию при открытии файла с макросами под лентой появляется окошко с возможностью активизировать макросы. Условно говоря, это тот же диалог подключения макросов, но открывается он немодально. Решение с одной стороны кажется привлекательным по интерфейсу, но может привести к несовместимости со старым версиями: например, пользователь может поработать некоторое время без макросов, а затем их подключить. Появилась отдельная опция возможности управления объектом VBE на уровне кода, которая по умолчанию отключена. Также отдельно настраивается безопасность надстроек Excel, которые по умолчанию пока все-таки подключаются без дополнительных вопросов.

Учитывайте эти различия в настройках при разработке и распространении собственных приложений для Excel.

С нашей точки зрения слабым моментом в настройке безопасности является то, что все параметры хранятся в системном реестре Windows в открытом виде, и теоретически не составляет особого труда изменять их при работе других приложений. Зачастую этим занимаются инсталляционные программы для приложений Excel.

Сертификаты VBA

Начиная с Microsoft Office 2000 стала доступна технология Microsoft Authenticode, позволяющая подписывать исполняемый код VBA в макросах и надстройках. Для разработчика решений это означает возможность запуска программ с установленным уровнем безопасности Высокий и Очень высокий .

Цифровые подписи обеспечивают поддержку целостности распространяемых решений (никто не может внести изменения в подписанный код, кроме владельца сертификата) и удостоверяют личность разработчика (однозначно определяют автора решения).

Существует несколько вариантов получения сертификатов:

  • Самоподписанный сертификат
  • Сертификат из локального центра сертификации
  • Коммерческий сертификат

Возможности использования самоподписанного сертификата ограничиваются в основном персональным применением. Для того, чтобы не возникало постоянного предупреждения об ошибке сертификата, необходимо добавить его в список надежных источников.

В случае наличия локального центра сертификации (в рамках организации, например), возможно создание сертификатов, выданных этим центром. При наличии Active Directory возможно распространение корневого сертификата на компьютеры пользователей, которое позволит определять подписанный код как доверенный. Для создания локального центра сертификации можно использовать службы сертификации Windows Server (Certificate Services), либо использовать решения на базе пакета OpenSSL.

При необходимости наиболее широкого распространения решений на базе Microsoft Office, рекомендуется приобрести коммерческий сертификат для подписывания кода (Code Signing). Использование широкоизвестных центров сертификации позволит пользователям быть уверенным, что они получают продукт от вполне определенного поставщика и в неизменённом виде.

Однако, есть несколько моментов в работе с сертификатами, о которых необходимо упомянуть:

  • Сертификат необходимо иметь на компьютерах всех разработчиков, вносящих изменения в проект VBA.
  • Иногда возникают ситуации, когда даже без изменения кода подписанный проект считается измененным. В данном случае работа с макросами невозможна, и единственным выходом из этой ситуации является снятие подписи в настройках проекта.
© 2024 Windows. Программы. Железо. Интернет. Полезно знать