ABOUT Visual Basic Programmieren Programmierung Download Downloads Tips & Tricks Tipps & Tricks Know-How Praxis VB VBA Visual Basic for Applications VBS VBScript Scripting Windows ActiveX COM OLE API ComputerPC Microsoft Office Microsoft Office 97 Office 2000 Access Word Winword Excel Outlook Addins ASP Active Server Pages COMAddIns ActiveX-Controls OCX UserControl UserDocument Komponenten DLL EXE
Diese Seite wurde zuletzt aktualisiert am 19.03.2001

Diese Seite wurde zuletzt aktualisiert am 19.03.2001
Aktuell im ABOUT Visual Basic-MagazinGrundlagenwissen und TechnologienKnow How, Tipps und Tricks rund um Visual BasicActiveX-Komponenten, Controls, Klassen und mehr...AddIns für VB, VBA und OfficeVBA-Programmierung in MS-Office und anderen AnwendungenScripting-Praxis für den Windows Scripting Host und das Scripting-ControlTools, Komponenten und Dienstleistungen des MarktesRessourcen für Programmierer (Bücher, Job-Börse)Dies&Das...

Themen und Stichwörter im ABOUT Visual Basic-Magazin
Code, Beispiele, Komponenten, Tools im Überblick, Shareware, Freeware
Ihre Service-Seite, Termine, Job-Börse
Melden Sie sich an, um in den vollen Genuss des ABOUT Visual Basic-Magazins zu kommen!
Informationen zum ABOUT Visual Basic-Magazin, Kontakt und Impressum

Zurück...

Ferngesteuerte IDE

Zurück...

(-hg) mailto:hg_adivbidecontrol@aboutvb.de

Während beispielsweise die Microsoft Office Anwendungen ihr Objekt-Modell zur "Fernsteuerung" per Script oder in anderen Anwendungen offen legen, steht das Objekt-Modell der VB-Entwicklungsumgebung (VB-IDE) nur für AddIns zur Verfügung. Mit einem kleinen AddIn können Sie allerdings das Objekt-Modell auch nach außen tragen und so zur Verfügung stellen.

Das Prinzip dieses AddIns ist so schlicht wie es elegant ist. Es nimmt wie üblich "seine" Instanz der IDE über die (Ereignis-)Methode AddinInstance_OnConnection des AddIn-Designers bzw. der IDTExtensibility2-Schnittstelle an und legt die Referenz in einem Standard-Modul als öffentliche Variable ab. Über eine Property Get-Prozedur in einer öffentlichen Klasse kann nun eine andere Anwendung die Referenz abholen und wie sonst gewohnt in einem AddIn verwenden. Damit eine solche fernsteuernde Anwendung die Instanz des AddIns finden kann, wird das AddIn als ActveX-EXE kompiliert. Die fernsteuernde Anwendung braucht dazu lediglich einen Verweis auf das AddIn (natürlich geht es, insbesondere in einem Script, auch über CreateObject) und einen Verweis auf die Typbibliothek der IDE (VB6EXT.OLB).

Das besagte Standard-Modul modVBE.bas enthält nur eine globale Variable:

Public gVBE As VBIDE.VBE

Der Code des AddIn-Designers Connect.Dsr:

Private Sub AddinInstance_OnConnection( _
 ByVal Application As Object, _
 ByVal ConnectMode As AddInDesignerObjects.ext_ConnectMode, _
 ByVal AddInInst As Object, custom() As Variant)

  Set gVBE = Application
End Sub

Private Sub AddinInstance_OnDisconnection( _
 ByVal RemoveMode As AddInDesignerObjects.ext_DisconnectMode, _
 custom() As Variant)

  Set gVBE = Nothing
End Sub

Und schließlich noch die wenigen Code-Zeilen der öffentlichen Klasse (Instancing = 5 - MultiUse) VBIDEConnect.cls:

Public Property Get VBE() As VBIDE.VBE
  Set VBE = gVBE
End Property

In einer Anwendung können Sie nun zum Beispiel ein neues Projekt in einer bereits gestarteten VB-IDE-Instanz anlegen:

With New VBIDEConnect
  With .VBE.VBProjects
    .Add vbext_pt_StandardExe, True
  End With
End With

In einem Script sieht das ganz ähnlich aus - hier wird allerdings die Instanz des AddIns über CreateObject geladen:

With CreateObject("VBIDEControl.VBIDEConnect")
  With .VBE.VBProjects
    .Add vbext_pt_StandardExe, True
  End With
End With

AddIn-Projekt, Beispiel-Projekt und Beispiel-Script (vbidecontrol.zip - ca. 13,4 KB)



AddIn-Übersicht


Zum Seitenanfang

Copyright © 1999 - 2023 Harald M. Genauck, ip-pro gmbh  /  Impressum

Zum Seitenanfang

Zurück...

Zurück...