Лекция №11 Приложение VBA в программном обеспечении MS Access



 

АннотацияВ СУБД Access 2003 используется визуальная среда программирования, основанная на событиях объектов. Технология разработки программы на VBA состоит в выборе объектов из определенного класса, выборе свойств объектов, в задании событий и создании (написании программы или исполняемого кода) процедуры их обработки.

Все приложения MS Office имеют собственные объектные модели. В VBA определены объектные модели для каждого приложения Microsoft Office, объекты которых можно использовать в программах. Объектная модель Microsoft Access 2003 представляет собой набор объектов, организованных в библиотеку Access.

Ключевые словаСУБД Access, макросы, макрорекордер, объекты

 

В СУБД Access 2003 используется визуальная среда программирования, основанная на событиях объектов. Технология разработки программы на VBA состоит в выборе объектов из определенного класса, выборе свойств объектов, в задании событий и создании (написании программы или исполняемого кода) процедуры их обработки.

Все приложения MS Office имеют собственные объектные модели. В VBA определены объектные модели для каждого приложения Microsoft Office, объекты которых можно использовать в программах. Объектная модель Microsoft Access 2003 представляет собой набор объектов, организованных в библиотеку Access.

Главным в иерархии объектов Access является объект Application (приложение Access). Слева на рисунке 1 представлена объектная модель Access.Application. Объекты модели не раскрыты. Справа на этом же рисунке показан фрагмент объектной модели, в которой объект CodeData представлен в раскрытом виде (в объект CodeData входят коллекции). Информация заимствована из справки Microsoft Visual Basic приложения Access 2003.


Рис. 1

Для просмотра объектов VBA в приложении Access 2003 можно использовать окно просмотра Object Browser. Это окно вызывается из редактора VBA, выполнив команду View/Object Browser. Объекты можно искать во всех доступных библиотеках (All Libraries). Скриншот окна диалога Object Browser представлен на рисунке 2.


Рис. 2

По умолчанию список библиотек (рис. 2) содержит библиотеку Access, DAO, VBA, библиотеку проекта - Деканат и др. Список доступных библиотек можно изменять в окне диалога References, которое открывается командой Tools/References.

Для поиска объекта Application в библиотеке Access выберем Access в открывающемся списке библиотек, а в списке поиск введем Application и щелкнем на кнопке Просмотр. Результаты поиска будут отображаться в окне Object Browser (рис. 3).


Рис. 3

В окне мы увидим, в какой библиотеке, в каком классе содержится объект Application, который мы искали. В списке Library (библиотека) отображаются объекты, в списке Class отображаются все имеющиеся модули и объекты класса. В списке Member отображаются компоненты (элементы объекта: свойства, методы, события) класса или проекта.

Если выбрать библиотеку Деканат, то окно диалога Object Browser будет иметь вид, представленный на рисунке 4.


Рис. 4

Если в списке Classes выделить объект Form_FormatP, то списке Members (компоненты) будет отображаться свойства и методы этого объекта.

Графические символы для описания объектов в окне диалога Object Browser: - событие; - методы; - свойства.

Если выбрать библиотеку VBA, то окно диалога Object Browser будет иметь вид, представленный на рис.5. В окне отображается библиотека классов, связанных с языком VBA.


Рис. 5

В нижней части инструмента Object Browser имеется еще одно полезное окно, которое предназначено для отображения сведений о выбранном элементе. На рисунке 5 в этом окне отображается выбранный класс <globals>. Рекомендую пользователям самостоятельно ознакомиться с этим окном.

В заключение хочу отметить, что перед рассмотрением языка программирования мы с вами ознакомились с объектами VBA, так как понимание объектов лежит в основе программирования на языке VBA. Объекты VBA - это основные средства манипуляции данными в Microsoft Access 2003. Итак, объект – это программный элемент, который отображается на экране, и который содержит необходимые переменные, определяющие его свойства, а также список методов для управления объектом. Знание структуры объектной модели Microsoft Access 2003 позволяет создавать качественные приложения. Далее мы рассмотрим язык программирования VBA: переменные, типы данных и константы.

Лекция №12 Приложение VBA в MS PowerPoint.

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

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

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

 

Объект Программный идентификатор Комментарий
Application PowerPoint.Application, PowerPoint.Application.9 С помощью этого программного идентификатора создается экземпляр PowerPoint без открытых презентаций

Все остальные объекты PowerPoint являются внутренними, то есть они не могут быть созданы сами по себе. Например, объект Presentation (Презентация) не может быть создан отдельно от самого приложения.

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

Основным в объектной модели PowerPoint является объект Application, содержащий коллекцию Presentations объектов типа Presentation. Каждый объект типа Presentation содержит коллекцию Slides объектов типа Slide, соответствующих слайдам презентации. Слайды, в свою очередь, содержат коллекции Shapes типа Shape, соответствующие элементам слайдов презентации. Манипуляция презентациями, слайдами и их элементами реально осуществляется путем обращения к свойствам и методам этих объектов.

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

   

Запуск Microsoft PowerPoint, создание и открытие презентаций

Для создания примеров использования Microsoft PowerPoint можно использовать следующий код создания контроллера (подробное объяснение этого фрагмента кода содержится в разделе «Общие принципы создания контроллеров автоматизации» предыдущей статьи данного цикла):

Uses ComObj, ActiveX

...

procedure TForm1.Button1Click(Sender: TObject);

var

ServerIsRunning : boolean;

Unknown : IUnknown;

Result : HResult;

AppProgID : String;

App : Variant;

begin

//Указать программный идентификатор приложения-сервера

AppProgID := 'PowerPoint.Application';

ServerIsRunning := False;

Result := GetActiveObject(ProgIDToClassID(AppProgID),nil,Unknown);

if (Result = MK_E_UNAVAILABLE) then

//Создатьодинэкземплярсервера

App := CreateOleObject(AppProgID)

else

begin

//Соединитьсясужезапущеннойкопиейсервера

App := GetActiveOleObject(AppProgID);

ServerIsRunning := True;

end;

//показать окно приложения на экране

App.Visible := True;

//----------------------------------------------------------

//

// Здесь выполняются другие действия с объектами приложения

// Office

//

//----------------------------------------------------------

if not ServerIsRunning then App.Quit;

App := Unassigned;

end;

и заменить комментарии кодом, манипулирующим свойствами и методами объекта PowerPoint.Application.

Изучение создания контроллеров PowerPoint мы начнем с создания и открытия презентаций.

Создать новую презентацию PowerPoint можно с помощью метода Add коллекции Presentations объекта Application:

App.Presentations.Add;

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

App.Presentations.Open('C:\MyPresentation.ppt');

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

App.Presentations.Item(2)

Обратите внимание на то, что в Delphi при использовании позднего связывания синтаксис, применяемый для обращения к членам коллекций объектов PowerPoint, аналогичен синтаксису, применяемому при обращении к объектам Word, и отличен от синтаксиса, применяемого при обращении к объектам Excel.

Отметим также, что в случае PowerPoint, в отличие от Word и Excel, объект Application не имеет метода Activate для того, чтобы сделать активной конкретную презентацию среди нескольких открытых. Для решения этой задачи следует обращаться к коллекции Windows объекта Presentation либо к объектам DocumentWindow и SlideShowWindow, например:

App.Presentations.Item(1).Windows.Item(1).Activate;

А теперь поговорим о том, как сохранять презентации в файлах.

   

Сохранение, печать и закрытие презентаций Microsoft PowerPoint

Закрытие презентации можно осуществить, используя метод Close:

App.Presentations.Item(2).Close;

или:

App.ActivePresentation.Close;

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

Для сохранения презентации следует воспользоваться методом Save или SaveAs:

App.Presentations.Item(2).Save;

Или:

App.Presentations.Item(2).SaveAs('C:\MyPres1.ppt');

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

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

 const

ppSaveAsPresentation = $00000001; //формат текущей версии PowerPoint

ppSaveAsPowerPoint7 = $00000002; //формат PowerPoint 7

ppSaveAsPowerPoint4 = $00000003; //формат PowerPoint 4

ppSaveAsPowerPoint3 = $00000004; //формат PowerPoint 3

ppSaveAsTemplate = $00000005; //сохранитькакшаблон

ppSaveAsRTF = $00000006; //формат RTF

ppSaveAsShow = $00000007; //формат SlideShow (*.pps)

ppSaveAsAddIn = $00000008; //формат PowerPoint AddIn (*.ppa)

ppSaveAsPowerPoint4FarEast = $0000000A; //формат PowerPoint 4 Far East (версиядляКитая, Японии, странЮго-ВосточнойАзии)

ppSaveAsDefault = $0000000B; //формат по умолчанию, определяемый текущими настройками PowerPoint

ppSaveAsHTML = $0000000C; //формат HTML

ppSaveAsHTMLv3 = $0000000D; //формат HTML 3

ppSaveAsHTMLDual = $0000000E; //формат HTML для текстов в двухбайтовой кодировке

ppSaveAsMetaFile = $0000000F; //формат WMF

ppSaveAsGIF = $00000010; //формат GIF

ppSaveAsJPG = $00000011; //формат JPG[-] ppSaveAsPNG = $00000012; //формат PNG

ppSaveAsBMP = $00000013; //формат BMP

В случае использования Visual Basic описывать эти константы нет необходимости.

Третий параметр указывает, нужно ли внедрять в презентацию используемые в ней шрифты. Он может принимать значения True (внедрять шрифты) или False (не внедрять шрифты); по умолчанию используется значение False.

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

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

App.Presentations.Item(2).PrintOut;

Если нужно изменить параметры печати, следует указать значения соответствующих (необязательных в случае позднего связывания) параметров метода PrintOut. В случае PowerPoint их пять. Первые два целых параметра указывают номера слайдов, которые должны быть напечатаны. Третий параметр представляет собой строку с именем файла, если вывод происходит в файл вместо принтера. Четвертый (целый) параметр указывает, сколько экземпляров печатать. Пятый параметр определяет, должен ли быть напечатанный документ разобран по экземплярам, и принимает значения True (по умолчанию) или False. Так, для вывода с пятого по двадцатый слайды в файл C:\MyOutput.prn в трех экземплярах можно использовать следующий код:

App.Presentations.Item(2).PrintOut(5,20,'c:\MyOutput.prn',3);

Отметим, однако, что помимо параметров метода PrintOut, влияющих на то, какой принтер используется и сколько экземпляров печатается, на режим печати презентации влияет также свойство PrintOptions объекта Presentation. Это свойство представляет собой объект PrintOption, имеющий, в свою очередь, набор свойств, влияющих на то, в каком виде печатается презентация (слайды, выдачи, заметки и др.), печатаются ли рамки вокруг слайдов, сколько слайдов на странице располагается в случае печати выдач, печатается ли фон слайдов и т.д. Указанный набор свойств примерно отражает то, что именно пользователь PowerPoint может изменить, выбрав опцию File | Print из меню PowerPoint (в том числе и имя принтера, и имя презентации, и число копий).

Далее мы рассмотрим, как изменить оформление презентации.

   

Оформление презентаций

Для оформления презентации обычно применяются цветовые схемы, шаблоны и образцы. Применить шаблон к презентации можно с помощью метода ApplyTemplate объекта Presentation:

App.Presentations.Item(1).ApplyTemplate('C:\Program Files\Microsoft Office\Templates\Presentation Designs\Bamboo.pot');

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

Для получения образцов слайдов, титульного слайда, раздаточных материалов и заметок используются свойства SlideMaster, TitleMaster, HandoutMaster и NotesMaster объекта Presentation. К образцам можно применять фоновую заливку, добавлять графические объекты, элементы управления ActiveX, изменять оформление текста.

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

 const

ppBackground = $00000001; //цвет фона

ppForeground = $00000002; //цвет текста и границ автофигур

ppShadow = $00000003; //цвет тени

ppTitle = $00000004; //цвет текста заголовка

ppFill = $00000005; //цвет заливки автофигур

ppAccent1 = $00000006; //цвет, применяемый в диаграммах

ppAccent2 = $00000007; //цвет, применяемый в диаграммах и гипертекстовых ссылках

ppAccent3 = $00000008; //цвет, применяемый в диаграммах и выбранных гипертекстовых ссылках

В частности, приведенный ниже фрагмент кода устанавливает для слайдов презентации серый фон и темно-красный цвет заголовков:

App.Presentations.Item(1).SlideMaster.ColorScheme.Colors(ppBackGround).RGB := RGB(128, 128, 128);

App.Presentations.Item(1).SlideMaster.ColorScheme.Colors(ppTitle).RGB := RGB(200, 0, 0);

Пользователи Delphi и C++Builder могут использовать и стандартные цвета, определенные в этих средствах разработки. Например, следующий фрагмент кода устанавливает желтый цвет заливки автофигур:

App.Presentations.Item(1).SlideMaster.ColorScheme.Colors(ppFill).RGB:= clYellow;

Для добавления объектов в образцы слайдов следует обращаться к коллекции Shapes объекта Master. Приведем фрагмент кода, который содержит пример добавления прямоугольника размером 100x200 пикселов в образец слайдов на расстоянии 50 пикселов от левого и верхнего краев слайда:

const

msoShapeRectangle = $00000001;

...

App.Presentations.Item(1).SlideMaster.Shapes.AddShape(msoShapeRectangle, 50, 50, 100, 200);

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

Чтобы изменить оформление текста в презентации, следует обратиться к свойству TextStyles объекта Master, содержащему три объекта типа TextStyle (для текста заголовков, основного и стандартного текстов):

 const

ppDefaultStyle = $00000001; //стандартный текст

ppTitleStyle = $00000002; //текст заголовков

ppBodyStyle = $00000003; //основной текст

Объект TextStyle обладает свойствами TextFrame (содержит сведения о расположении текста внутри текстового поля) и Ruler (содержит сведения о позициях табуляции и сдвигах между различными уровнями). Свойство Levels объекта TextStyleсодержит пять объектов TextStyleLevel, содержащих сведения об оформлении текста различных уровней. Нижеприведенный фрагмент кода устанавливает отступ для основного текста от левого края содержащего его объекта равным 10 пунктам, размер шрифта первого уровня основного текста равным 42 пунктам, а имя этого шрифта — Courier:

App.Presentations.Item(1).SlideMaster.TextStyles.Item(ppBodyStyle).TextFrame.MarginLeft := 10;

App.Presentations.Item(1).SlideMaster.TextStyles.Item(ppBodyStyle).Levels.Item(1).Font.Size := 42;

App.Presentations.Item(1).SlideMaster.TextStyles.Item(ppBodyStyle).Levels.Item(1).Font.Name := 'Courier';

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

   

Манипуляция отдельными слайдами

Доступ к слайдам презентации осуществляется с помощью коллекции Slides объекта Presentation. Эта коллекция содержит объекты типа Slide, каждый из которых соответствует отдельному слайду презентации.

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

const

ppLayoutChart = $00000008;

...

App.Presentations.Item(1).Slides.Add(2,ppLayoutChart);

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

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

App.Presentations.Item(1).Slides.Item(1)

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

Var MyID: integer;

...

const

ppLayoutText = $00000002;

...

 

MyID := App.Presentations.Item(1).Slides.Item(2).SlideID;

...

App.Presentations.Item(1).Slides.FindBySlideID(MyID).Layout := ppLayoutText;

Отметим, что при копировании слайда в другую презентацию его SlideID изменяется.

Свойство Layout объекта Slide, использованное в приведенном примере, позволяет изменить тип слайда.

Для изменения цветового оформления слайда используется свойство ColorScheme объектов Slide или SlideRangeсответственно. Это свойство возвращает объект ColorScheme, использование которого уже было описано выше в разделе «Оформление презентаций». Следующий пример показывает, как установить синий цвет заголовка второго слайда презентации:

App.Presentations.Item(1).Slides.Item(2).ColorScheme.Colors(ppTitle).RGB:= clBlue;

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

App.Presentations.Item(1).Slides.Item(2).Shapes.Item(1).Name := 'MyText';

Поскольку наиболее часто в слайдах приходится добавлять в объекты текст, остановимся на этом поподробнее. Для добавления текста к объекту Shape следует использовать его свойство TextFrame. Покажем на примере добавление текста заголовка слайда, имя которого было заменено выше:

 pp.Presentations.Item(1).Slides.Item(2).Shapes.Item('MyText').TextFrame.TextRange.Text := 'Это заголовок слайда';

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

App.Presentations.Item(1).Slides. Item(2).Layout := ppLayoutText;

App.Presentations.Item(1).Slides.Item(2).Shapes.Item(2).TextFrame.TextRange.Text :='Текст 1'+chr(13)+chr(10)+'Текст 2';

Чтобы изменить расположение объектов друг поверх друга, можно использовать свойство Zorder объекта Shape, а для изменения типа заливки — свойство Fill этого же объекта. Подробности об использовании этих свойств и список соответствующих констант можно найти в справочном файле.

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

   

Демонстрация слайдов

Для показа слайдов используется метод Run объекта SlideShowSettings, являющегося свойством объекта Presentation:

App.Presentations.Item(1).SlideShowSettings.Run;

Для установки режима показа слайдов также используется объект SlideShowSettings. Его свойство RangeType указывает, какой именно фрагмент презентации нужно демонстрировать. Возможные значения этого свойства следующие:

 const

ppShowAll = $00000001; //вся презентация

ppShowSlideRange = $00000002; //выделенный диапазон слайдов

ppShowNamedSlideShow = $00000003; //именованная демонстрация

Свойства StartingSlide и EndingSlide объекта SlideShowSettings содержат номера первого и последнего слайда демонстрируемого фрагмента. Эти свойства имеет смысл применять в случае, если свойство RangeType этого же объекта равно ppShowSlideRange.

Свойство AdvanceMode объекта SlideShowSettings указывает, каким образом производится смена слайдов при демонстрации:

 const

ppSlideShowManualAdvance = $00000001; //ручная смена слайдов

ppSlideShowUseSlideTimings = $00000002; //смена слайдов в соответствии с временем показа каждого слайда

ppSlideShowRehearseNewTimings = $00000003; //запись времени показа слайдов

Свойство LoopUntilStopped объекта SlideShowSettings, принимающее значения True или False, указывает, демонстрируются ли слайды непрерывно до нажатия пользователем клавиши Esc. Это свойство целесообразно применять, если свойство AdvanceMode объекта SlideShowSettings установлено равным ppSlideShowUseSlideTimings. Отметим также, что время показа слайдов, если таковое не записано пользователем вручную, также можно установить программно — с помощью свойства SlideShowTransition объекта Slide, например:

App.Presentations.Item(2).Slides.Item(5).SlideShowTransition.AdvanceTime := 1;

App.Presentations.Item(2).Slides.Item(5).SlideShowTransition.AdvanceOnTime := True;

Следующий пример иллюстрирует применение описанных выше свойств и методов:

for i:=2 to 7 do

begin

App.Presentations.Item(1).Slides.Item(i).SlideShowTransition.AdvanceTime := 1;

App.Presentations.Item(1).Slides.Item(i).SlideShowTransition.AdvanceOnTime := True;

end;

App.Presentations.Item(1).SlideShowSettings.StartingSlide:=2;

App.Presentations.Item(1).SlideShowSettings.EndingSlide:=7;

App.Presentations.Item(1).SlideShowSettings.AdvanceMode:=ppSlideShowUseSlideTimings;

App.Presentations.Item(1).SlideShowSettings.LoopUntilStopped:=True;

App.Presentations.Item(1).SlideShowSettings.RangeType:=ppShowSlideRange;

App.Presentations.Item(1).SlideShowSettings.Run;

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

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

Const

ppEffectBlindsVertical = $00000302;

App.Presentations.Item(1).Slides.Item(2).SlideShowTransition.EntryEffect := ppEffectBlindsVertical;

App.Presentations.Item(1).Slides.Item(2).SlideShowTransition.SoundEffect.ImportFromFile ('C:\Program Files\NetMeeting\blip.wav');

Константы, соответствующие различным эффектам, можно найти в интерфейсном модуле или справочном файле.

А теперь кратко остановимся на управлении поведением объектов при показе слайдов. Для управления анимацией объектов на слайдах следует использовать свойство AnimationSettings объекта Shape. Это свойство возвращает объект AnimationSettings, свойства которого и отвечают за анимацию данного объекта. Так, свойство AdvanceMode указывает, каким образом появляется объект, а свойство AdvanceTime — через какое время после показа слайда появляется объект. Свойство TextLevelEffect определяет, до какого уровня текста происходит анимация объекта. И наконец, свойство Animate(принимающее значения False или True) указывает, должен ли объект вообще отображаться с анимацией. Пример управления поведением объекта на слайде приведен ниже:

const

ppAnimateByAllLevels = $00000010;

ppAdvanceOnTime = $00000002;

...

App.Presentations.Item(1).Slides.Item(3).Shapes.Item(1).AnimationSettings.AdvanceMode := _
ppAdvanceOnTime; App.Presentations.Item(1).Slides.Item(3).Shapes.Item(1).AnimationSettings.AdvanceTime := 1;
App.Presentations.Item(1).Slides.Item(3).Shapes.Item(1).AnimationSettings.TextLevelEffect := _
 ppAnimateByAllLevels; App.Presentations.Item(1).Slides.Item(3).Shapes.Item(1).AnimationSettings.Animate := True;

Этот фрагмент кода устанавливает автоматическую анимацию первого объекта на третьем слайде через одну секунду после показа слайда.

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

Литература

1. Таганов Л. С., Пимонов А. Г. Информатика: [Электронныйресурс]: учеб.пособие для студентов техн. направлений испециальностей вузов/ Л. С. Таганов, А. Г. Пимонов; ГУ КузГТУ. – Кемерово, 2010. – 330 с.

2. Информатика. Базовый курс: учеб. пособие для студентов втузов/ под ред. С. В. Симоновича. - 3-е изд. - СПб.: Питер, 2012. - 640 с.

3. Таганов, Л. С. Конспекты лекций по курсу«ИНФОРМАТИКА»: [Электронный ресурс]: для студентов всех форм обученияспециальности130400.65 «Горное дело» / Л. С. Таганов; КузГТУ. – Кемерово, 2013. – 290 с.

Лекция №13 Работа с файлами

АннотацияВ СУБД Access 2003 используется визуальная среда программирования, основанная на событиях объектов. Технология разработки программы на VBA состоит в выборе объектов из определенного класса, выборе свойств объектов, в задании событий и создании (написании программы или исполняемого кода) процедуры их обработки.

Все приложения MS Office имеют собственные объектные модели. В VBA определены объектные модели для каждого приложения Microsoft Office, объекты которых можно использовать в программах. Объектная модель Microsoft Access 2003 представляет собой набор объектов, организованных в библиотеку Access.

Ключевые словаСУБД Access, макросы, макрорекордер, объекты

 

Типы файлов в VBA

В VBA допустима работа с тремя типами текстовых файлов.

       
  Файл последовательного доступа Рассматривается как последовательность строк произвольной длины, разделенных специальными символами. Чтение и запись в файл производится построчно  
  Файл произвольного доступа Состоит из записей фиксированной длины и размер записи указывается при его открытии. Это позволяет локализовать любую запись в файле по ее номеру  
  Бинарный файл Является частным случаем файла произвольного доступа. Размер записи в бинарном файле считается равным 1 байту  

Открытие и закрытие файла

Обсудим инструкции, связанные с открытием файла для операций ввода/вывода, а также с закрытием файла по завершению работы с ним.

  Open Разрешает выполнение операций ввода/вывода при работе с файлом. Синтаксис: Open Путь For Режим [Access Доступ] [Блокировка] As [ # ]НомерФайла [Lеn=Длина] · Путь — строковое выражение, указывающее имя файла · Режим — устанавливает режим работы с файлом. ДопустимыеЗначения: Append, Binary, Input, Output или Random · Доступ — устанавливает операции, разрешенные с открытым файлом. Допустимые значения: Read, Write или ReadWrite · Блокировка — устанавливает операции, разрешенные с открытым файлом другим процессам. Допустимые значения: · Shared, LockRead, LockWriteиLockReadWrite(общие, блок.чтения, блок записи …)иномерФайла— допустимыйномерфайла. Число в интервале от 1 до 255. Обратите внимание на то, что параметру Номер-Файла предшествует символ #. Значение номерФайла нельзя изменять, пока файл открыт. Но при следующем открытии файла номерФайла может быть другим числом длина — число, меньшее либо равное 32 767 (байт). Для файлов, открытых в режиме Random, это значение является длиной записи. Для файлов с последовательным доступом это значение является числом буферизуемых символов Про инструкцию open важно также знать, что во время ее работы VBA также резервирует файловый буфер в памяти компьютера для ускорения процесса записи и считывания (прямое записывание информации на диск может существенно замедлить выполнение программы, что особенно заметно при работе с большими файлами). Максимальное число файловых буферов устанавливается в системном файле Config.sys  
  Close Завершает операции ввода/вывода с файлом, открытым с помощью инструкции open. Эта инструкция 'очищает буфер и указывает операционной системе обновить FAT (таблицу размещения файлов). Важно, чтобы каждый файл по завершении работы с ним был закрыт, иначе это может привести к частичной потере информации. Синтаксис: Close [СписокНомеровФайлов] Аргумент СписокНомеровФайлов может представлять один или несколько номеров файлов. При этом используется следующий синтаксис, где номерФайла представляет любой допустимый номер файла: [[#] номерФайла] [, [#] номерФайла] ...  
  Reset Закрывает все активные файлы, открытые с помощью инструкции open, и записывает содержимое всех буферов файлов На диск, открытых с помощью инструкции Open  
  FreeFile Функция возвращает доступный номер, который может использоваться в инструкции Open  
       

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

Open "Первый" For Binary Access Write As #1 Close #1


Дата добавления: 2018-04-04; просмотров: 1169; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!