- •Сопронюк т.М.
- •Та його діалекти навчальний посібник
- •Огляд систем програмування vb, vb .Net, vba та vbScript
- •Інтегроване середовище
- •Основне вікно
- •Палітра компонентів (ToolBox)
- •Вікно властивостей (Properties)
- •Вікно редактора коду (Code Window)
- •Події від клавіатури
- •Вікно плану форми (Form Layout Window)
- •Використання пунктів меню Edit I Format для побудови форми
- •Використання вікна редактора коду
- •Мова програмування
- •Основні типи даних
- •Опис змінних
- •Основні числові операції
- •Основні символьні операції
- •Основні операції для роботи з масивами
- •Оператори управління програмою
- •Процедури і функції
- •Процедури
- •Функції
- •Вбудовані діалоги Visual Basic
- •Об'єкти, класи, колекції
- •Глобальні об'єкти vb
- •Колекції
- •Приклад проекту зі стандартними елементами керування
- •Графічні методи та елементи керування
- •Графічні методи
- •Графічні елементи керування
- •Приклад проекту з використанням графічних можливостей
- •Використання баз даних Доступ до баз даних у vb
- •Вбудовані ресурси баз даних
- •Коректування опису таблиці
- •Додавання записів в таблицю, їх модифікація та знищення
- •Платформа .Net
- •Бібліотека класів платформи .Net
- •Середовище Visual Studio .Net
- •Консольні застосування
- •Консольне вікно програми
- •Приклад консольної програми з використанням структур
- •Створення макросів vba
- •Проекти vba
- •Використання вікна проекту
- •Використання вікна властивостей
- •В икористання вікна модуля
- •Основні об’єкти бібліотеки vba for Excel
- •Сімейства об'єктів
- •Основні об’єкти бібліотеки vba for for Word
- •Основні об’єкти бібліотеки vba for PowerPoint
- •Приклади макросів ms Office
- •Автоматизація додатків Microsoft Office
- •Приклади створення контролерів автоматизації
- •Вставка сценарію на vbScript у Web-сторінку
- •Перетворення підтипів у vbScript
- •Підтипи даних variant
- •Вбудовані елементи керування html
- •Робота з компонентами ActiveX
- •Приклад створення активної html-сторінки
- •Лабораторна робота №1 Тема: Побудова інтерфейсу із стандартними елементами керування для розв’язання обчислювальної задачі
- •Лабораторна робота №2 Тема: Використання графічних елементів керування і графічних методів
- •Лабораторна робота №3
- •Лабораторна робота №4 Тема: Використання об’єктів Microsoft Office
- •Лабораторна робота №5 Тема: Програмування активних html-сторінок засобами vbScript, dhtml, asp або asp .Net
- •Лабораторна робота №6 Тема: Створення консольної програми засобами vb .Net
- •Додаток Алфавітний перелік функцій і команд Visual Basic
- •Використана література
- •Microsoft Visual Basic та його діалекти
- •58012, Чернівці, вул.Коцюбинського, 2
Приклади створення контролерів автоматизації
У загальному випадку контролер автоматизації повинен виконувати наступні дії:
Перевірити, чи запущена копія додатка-сервера.
У залежності від результатів перевірки запустити копію додатка Office, що автоматизується, або підключитися до вже наявної копії.
Зробити вікно додатка-сервера видимим (у загальному випадку це не обов'язково).
Виконати якісь дії з додатком-сервером (наприклад, створити або відкрити документи, змінити їхні дані, зберегти документи й ін.)
Закрити додаток-сервер, якщо його копія була запущена даним контролером, або відключитися від нього, якщо контролер підключився до вже наявної копії.
Нижче наведено проект з використанням серверів автоматизації MS Office, а саме Word, Excel, PowerPoint і Access, які запускаються з середовища Delphi, причому, контролер автоматизації виконує всі п’ять перерахованих дій.
Uses ComObj, ActiveX;
procedure TForm1.btnOKClick(Sender: TObject);
var
ServerIsRunning : boolean;
Unknown : IUnknown;
Result : HResult;
AppProgID : String;
App : Variant;
begin
if lstName.ItemIndex=-1 then lstName.ItemIndex:=0;
/// Програмний ідентифікатор додатка-сервера
AppProgID:=lstName.Items[lstName.ItemIndex]+'.Application';
ServerIsRunning := False;
Result := GetActiveObject(ProgIDToClassID(AppProgID),nil,Unknown);
if (Result = MK_E_UNAVAILABLE) then
begin
// Створення одного екземпляра сервера
App := CreateOleObject(AppProgID);
App.Visible := True; // Показати вікно додатку на екрані
end
else
begin
// З'єднання з вже запущенною копії сервера
App := GetActiveOleObject(AppProgID);
ServerIsRunning := True;
end;
case lstName.ItemIndex of
0: // Word.Application
begin
App.Documents.Add; // Відкрити новий документі
App.Selection.TypeText
('Delphi -> Word: Вставка тексту в документ.');
//-----------------------------
// Інші дії з об'єктом додатку Word.Application
//-----------------------------
end;
1:// Excel.Application
begin
App.WorkBooks.Add;
// Дії з активним робочим листом
App.ActiveWorkBook.WorkSheets[1].Cells[1,2].Value:=
'Delphi -> Excel: Вставка тексту в комірку листа.';
App.ActiveWorkBook.WorkSheets['Лист1'].Cells[1,1].Value:='25';
App.ActiveWorkBook.WorkSheets[1].Cells[2,1].Value:='26';
// Добавлення формули в комірку робочого листа
App.ActiveWorkBook.WorkSheets[1].Cells[3,1].Value := '=SUM(A1:A2)';
//-----------------------------
// Інші дії з об'єктом додатку Excel.Application
//-----------------------------
end;
end;
2:// Access.Application
begin
// Відкриття існуючої бази даних App.OpenCurrentDatabase('D:\Baza_Usp\uspish_uk.mdb');
// Відкриття таблиці student бази даних uspish_uk.mdb
App.DoCmd.OpenTable('student');
showMessage('Delphi -> Access');
//-----------------------------
// Інші дії з об'єктом додатку Access.Application
//-----------------------------
end;
3:// PowerPoint.Application
begin
// Відкриття існуючої презентації
App.Presentations.Open(FileName:='D:\Тема 2.ppt');
//Запуск презентації на виконання
App.ActivePresentation.SlideShowSettings.Run;
showMessage('Delphi -> PowerPoint');
//-----------------------------
// Інші дії з об'єктом додатку PowerPoint.Application
//-----------------------------
end;
if not ServerIsRunning then App.Quit;
App:=Unassigned;
end;
Наступний проект створений у середовищі VB. NET. В ньому демонструються два типи зв’язування (раннє і пізнє) з сервером автоматизації MS Word. Тут наявність запущеної копії сервера автоматизації не перевіряється.
Private Sub LateBinding_Click_1(ByVal sender As System.Object,_
ByVal e As System.EventArgs) Handles LateBinding.Click
' Приклад пізнього зв'язування
' із зовнішнім об'єктом Word
Dim oWord As Object ' невизначений об'єкт
oWord = CreateObject("Word.Application")
oWord.Visible = True
MsgBox("Пізнє зв'язування")
oWord.Quit()
oWord = Nothing
End Sub
Private Sub EarlyBinding_Click_1(ByVal sender As System.Object,_ ByVal e As System.EventArgs) Handles EarlyBinding.Click
' Приклад раннього зв'язування
' із зовнішнім об'єктом Word
' Буде працювати тільки у випадку наявності посилання
' (Project|References) на реально існуючий додаток
Dim oWord As New Word.Application 'створюємо конкретний об'єкт
' Можна створити об'єкт у такий спосіб:
' Dim oWord As Word.Application ' описуємо
' Set oWord = New Word.Application ' створюємо новий екземпляр
oWord.Visible = True
oWord.Documents.Add()
oWord.Selection.TypeText_
("VB. NET -> Word: Вставка тексту в документ.")
MsgBox("Раннє зв'язування")
oWord.Quit()
oWord = Nothing
End Sub
Visual Basic Scripting Edition
Visual Basic Scripting Edition (або просто VBScript) — це мова програмування від компанії Microsoft, призначена для створення сценаріїв (скриптів). VBScript є підмножиною мови Visual Basic і широко використовується при створенні адміністративних сценаріїв у системі Windows. VBScript за замовчуванням підтримується в Windows Script Host (WSH), що у свою чергу за замовчуванням установлюється разом з майже кожною версією Windows.
Синтаксис VBScript є трохи спрощеною версією стандартного синтаксису Visual Basic. Наприклад, у VBScript не підтримується типізація: усі змінні мають тип Variant. Сценарії мовою VBScript найчастіше використовуються в наступних областях:
Автоматизація адміністрування систем Windows.
Серверний програмний код на сторінках ASP у Web-додатках.
Клієнтські сценарії на Web-сторінках (в основному тільки в броузері Internet Explorer).