Использование Visual Basic Editor

   
На этом шаге мы рассмотрим свойства объекта VBE.

   
До этого мы рассматривали доступ к элементам рабочей книги и элементам управления из внешних приложений Delphi.
Для полного представления о возможностях управления приложением Excel из внешних программ этого
недостаточно. Объектная модель Excel позволяет управлять не только элементами создаваемых документов,
но и элементами программ на встроенном языке. Для доступа к элементам программ используется объект VBE.
Родительским объектом для VBE является Application (Application.VBE), a свойства и методы самого
объекта VBE позволяют полностью управлять приложениями Visual Basic из внешних программ. На
рисунке 1 218 шага представлена часть общей объектной модели VBE, позволяющая понять, каким
образом можно получить доступ непосредственно к текстам встроенных макросов.

   
Объект VBE включает в себя коллекции проектов, областей программ, элементов управления и коллекцию окон
редактора. Очевидно, что, используя перечисленные ссылки, можно получить доступ к элементам этих коллекций и к
их свойствам. Кроме этих коллекций объект VBE включает ссылки на активные элементы этих коллекций и
собственные свойства. Собственным свойством является строка, содержащая номер версии редактора. В конечном
итоге нам в целях разработки эффективных приложений достаточно будет получить доступ к текстам макросов.
Для того чтобы создать новые или изменить уже существующие программные модули VB, используем свойства
VBE, представленные в таблице 1.

Таблица 1. Свойства объекта VBE

СвойствоТипНазначение
VersionСтрокаВерсия
ActiveCodePaneОбъектСсылка на активный модуль
Active VBProjectОбъектСсылка на активный проект
ActiveWindowОбъектСсылка на активное окно
CodePanesОбъектСсылка на коллекцию модулей
CommandBarsОбъектСсылка на коллекцию элементов управления
Events.CommandBarEventsОбъектСсылка на объект-источник события при воздействии на элемент управления
Events.ReferencesEventsОбъектСсылка на объект-источник события при добавлении или удалении ссылок
MainWindowОбъектСсылка на главное окно
VBE.SelectedVBComponentОбъектСсылка на выделенный элемент
VBProjectsОбъектСсылка на коллекцию проектов
WindowsОбъектСсылка на коллекцию окон

   
Когда по условиям логики работы вашего приложения требуется знать версию Visual Basic Editor, можно
воспользоваться свойством Version объекта VBE и получить номер версии редактора.

procedure TForm1.Button2Click(Sender: TObject);
//Получение номера версии VBE
var
  Version: String;
begin
  Version:=E.VBE.Version;
  MessageBox(handle,PChar(Version),'Номер версии Visual Basic',0);
end;

   
Результат работы этой процедуры приведен на рисунке 1.


Рис.1. Результат работы процедуры

   
Вот полный текст приложения.

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ComObj, CheckLst, Spin;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation
var
  E: Variant;
{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
//Создание объекта Excel и его визуализация
begin
  E:=CreateOleObject('Excel.Application');
  E.Visible:=True;
end;

procedure TForm1.Button2Click(Sender: TObject);
//Получение номера версии VBE
var
  Version: String;
begin
  Version:=E.VBE.Version;
  MessageBox(handle,PChar(Version),'Номер версии Visual Basic',0);
end;

end.

Текст этого приложения можно взять здесь (5,5 Кб).

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


Рис.2. Сообщение об ошибке

   
Это вызвано тем, что отсутствует "доверие" к проектам, использующим VBE. Для установки этого доверия
нужно выполнить пункт меню Сервис | Макрос | Безопасность..., в появившемся окне переключиться на
вкладку Надежные источники и установить флажок Доверять доступ к Visual Basic Project.


Рис.3. Установка флажка Доверять доступ к Visual Basic Project

   
На следующем шаге мы продолжим изучение этого вопроса.



Вы можете оставить комментарий, или Трекбэк с вашего сайта.

Оставить комментарий