{"id":55000311,"date":"2022-04-01T00:00:00","date_gmt":"2023-03-02T17:06:08","guid":{"rendered":"http:\/\/access-im-unternehmen.aix-dev.de\/aiu\/?p=311"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-30T00:00:00","slug":"COMAddIns_mit_twinBASIC","status":"publish","type":"post","link":"https:\/\/vbentwickler.de\/COMAddIns_mit_twinBASIC\/","title":{"rendered":"COM-Add-Ins mit twinBASIC"},"content":{"rendered":"<p><b>COM-Add-Ins sind Erweiterungen f&uuml;r Office-Anwendungen und ihre Entwicklungsumgebung, den VBA-Editor. Damit lassen sich Erweiterungen programmieren, die &uuml;ber die Benutzeroberfl&auml;che der jeweiligen Anwendung verf&uuml;gbar gemacht werden und ihre Aufgabe mit oder ohne ein eigenes User Interface bereitstellen. COM-Add-Ins kann man jedoch nicht mit den Mitteln der Office-Anwendungen selbst programmieren. Dazu sind weitere Tools notwendig. Fr&uuml;her ging dies am einfachsten mit Visual Studio 6. Dieses ist jedoch sp&auml;testens seit der Einf&uuml;hrung der 64-Bit-Versionen der Office-Anwendungen nicht mehr nutzbar, sodass Alternativen gefragt sind. Neben Visual Studio .NET, das ebenfalls das Erstellen von COM-Add-Ins erlaubt, erschien vor kurzer Zeit eine neue Alternative: twinBASIC. Ein Projekt von Wayne Phillips, das sich nicht nur anschickt, Nachfolger von Visual Studio 6 zu werden, sondern schon jetzt das Erstellen unter anderem von COM-Add-Ins erm&ouml;glicht. Dieser Artikel stellt die grundlegenden Techniken zum Erstellen eines Ger&uuml;sts f&uuml;r COM-Add-Ins vor, das wir in weiteren Artikeln mit praktischen L&ouml;sungen f&uuml;r die Erweiterung der Office-Anwendungen und auch des VBA-Editors nutzen werden.<\/b><\/p>\n<h2>Vorbereitungen<\/h2>\n<p>Wie wir <b>twinBASIC <\/b>herunterladen und betriebsbereit machen, beschreiben wir im Artikel <b>twinBASIC: Visual Basic f&uuml;r die Zukunft <\/b>(<b>www.vbentwickler.de\/310<\/b>).<\/p>\n<p>Nach dem Start von <b>twinBASIC <\/b>finden wir auf der zweiten Seite des Startdialogs namens <b>Samples <\/b>einige Beispielprojekte vor.<\/p>\n<h2>Erstellen eines COM-Add-In-Projekts<\/h2>\n<p>Wir starten mit einer der praktischen Vorlagen f&uuml;r die Erstellung verschiedener Beispielprojekte, in diesem Fall <b>Sample 5. MyCOMAddIn<\/b> (siehe Bild 1).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2022_02\/pic_311_001.png\" alt=\"Erstellen eines COM-Add-Ins auf Basis des passenden Beispiels\" width=\"424,6267\" height=\"413,088\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 1: Erstellen eines COM-Add-Ins auf Basis des passenden Beispiels<\/span><\/b><\/p>\n<p>Ein Klick auf diese Schaltfl&auml;che erstellt ein neues Projekt, das zu diesem Zeitpunkt jedoch noch nicht gespeichert ist. Um dieses zu speichern, bet&auml;tigen wir den Men&uuml;befehl <b>File|Save Project<\/b>. Dies &ouml;ffnet, da das Projekt noch ungespeichert ist, einen <b>Save Project As&#8230;<\/b>-Dialog. Mit diesem navigieren wir zu dem gew&uuml;nschten Zielordner und geben den Dateinamen f&uuml;r das Projekt ein, der die Dateiendung <b>.twinproj <\/b>tr&auml;gt (siehe Bild 2).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2022_02\/pic_311_002.png\" alt=\"Festlegen des Speicherorts f&uuml;r die .twinproj-Datei\" width=\"599,6265\" height=\"325,8201\"\/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 2: Festlegen des Speicherorts f&uuml;r die .twinproj-Datei<\/span><\/b><\/p>\n<p>Schauen wir dann in das Verzeichnis, in dem wir das neue Projekt angelegt haben, stellen wir fest, dass hier tats&auml;chlich nur eine Datei vorliegt &#8211; es gibt aktuell noch keine weiteren Elemente.<\/p>\n<p>Damit kehren wir zur&uuml;ck zur <b>twinBASIC<\/b>-Entwicklungsumgebung, die das neu erstellte Projekt anzeigt.<\/p>\n<h2>Module des Beispielprojekts<\/h2>\n<p>Das Projekt enth&auml;lt zu diesem Zeitpunkt zwei Module:<\/p>\n<ul>\n<li>Das erste hei&szlig;t <b>MyCOMAddin.twin <\/b>und wird direkt beim Start im zentralen Bereich der Entwicklungsumgebung angezeigt. Es enth&auml;lt im Falle eines COM-Add-Ins den gesamten Code des Projekts. Wir schauen uns diesen weiter unten an.<\/li>\n<li>Das zweite ist das Modul <b>DllRegistration.twin<\/b>. Dieses enth&auml;lt Informationen, die erstens beim Erstellen des Projekts zum Testen in die Registry geschrieben werden und die auch beim manuellen Registrieren mit <b>RegSvr32.exe <\/b>verwendet werden. Auch den Inhalt dieses Moduls schauen wir uns gleich im Detail an.<\/li>\n<\/ul>\n<h2>F&uuml;r welche Anwendung soll das COM-Add-In eingesetzt werden?<\/h2>\n<p>Die wichtigste Frage, die wir beantworten m&uuml;ssen, bevor wir das Add-In &uuml;berhaupt testweise erstellen, ist die nach der Anwendung, in der das Add-In seine Funktionen zur Verf&uuml;gung stellen soll.<\/p>\n<p>Aktuell gehen wir davon aus, dass es sich dabei um eine der folgenden Office-Anwendungen handelt:<\/p>\n<ul>\n<li>Access<\/li>\n<li>Excel<\/li>\n<li>Outlook<\/li>\n<li>PowerPoint<\/li>\n<li>Word<\/li>\n<\/ul>\n<p>Oder wollen wir das COM-Add-In sogar f&uuml;r mehrere Office-Anwendungen gleichzeitig verf&uuml;gbar machen? Das ist m&ouml;glich, aber es stellt sich die Frage, ob es Anwendungsf&auml;lle gibt, die in allen Office-Anwendungen n&uuml;tzlich sind. Tats&auml;chlich gehen wir davon aus, dass ein COM-Add-In eher auf eine Office-Anwendung spezialisiert ist. Dennoch zeigen wir, wie wir das COM-Add-In f&uuml;r mehrere Office-Anwendungen gleichzeitig bereitstellen k&ouml;nnen.<\/p>\n<h2>Soll das COM-Add-In f&uuml;r eine 32-Bit- oder f&uuml;r eine 64-Bit-Anwendung kompiliert werden?<\/h2>\n<p>Die zweite Frage, die sich stellt, ist die nach der Architektur der Office-Installation: Ist diese f&uuml;r 32-Bit- oder f&uuml;r 64-Bit ausgelegt? Wir befinden uns in einem Wandel, denn bis vor kurzer Zeit hat das Office-Setup standardm&auml;&szlig;ig die 32-Bit-Version von Office installiert. Mit Office 2016 und den entsprechenden Versionen unter Office 365 hat sich dies jedoch ge&auml;ndert. Hier landet nun standardm&auml;&szlig;ig die 64-Bit-Version auf dem Rechner.<\/p>\n<p>Das Problem ist nun, dass auch COM-Add-Ins f&uuml;r die entsprechende Version, also 32-Bit oder 64-Bit, kompiliert werden m&uuml;ssen. Unter twinBASIC ist das ein kleines Problem, wenn auch mit gewissen Einschr&auml;nkungen. Wir k&ouml;nnen zwar die entsprechende Zielversion (<b>win32 <\/b>oder <b>win64<\/b>) vor der Kompilierung ausw&auml;hlen. Allerdings ist twinBASIC nur f&uuml;r die 32-Bit-Version kostenlos. Wenn wir die 64-Bit-Version kompilieren, wird sowohl w&auml;hrend der Kompilierung als auch bei Start des COM-Add-Ins jeweils ein Dialog des Herstellers mit dem <b>twinBASIC<\/b>-Logo eingeblendet.<\/p>\n<p>F&uuml;r Entwicklungszwecke und zum Ausprobieren ist das kein Problem. Wir gehen jedoch davon aus, dass wir, wenn wir mit <b>twinBASIC <\/b>erstellte Anwendungen beim Kunden einsetzen wollen, auch die anfallenden (&uuml;berschaubaren) Lizenzgeb&uuml;hren gerne entrichten.<\/p>\n<h2>Schnellstart mit dem Beispiel-COM-Add-In<\/h2>\n<p>Wir wollen direkt einmal das vorgefertigte Beispiel ausprobieren und klicken nach der Auswahl der Zielversion (32-Bit oder 64-Bit) direkt auf die Schaltfl&auml;che <b>Build <\/b>in der Men&uuml;leiste (siehe Bild 3).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2022_02\/pic_311_003.png\" alt=\"Erstellen des COM-Add-Ins\" width=\"700\" height=\"133,0578\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 3: Erstellen des COM-Add-Ins<\/span><\/b><\/p>\n<p>Danach k&ouml;nnen wir das COM-Add-In in Excel und auch in Access ausprobieren. Wenn wir Excel &ouml;ffnen, finden wir die M&ouml;glichkeit zum Aufrufen der Funktion des COM-Add-Ins im Ribbon unter <b>twinBASIC Test<\/b>. Ein Klick auf die in diesem Tab enthaltene Schaltfl&auml;che zeigt ein Meldungsfenster an (siehe Bild 4).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2022_02\/pic_311_004.png\" alt=\"Aufruf des COM-Add-Ins von Excel aus\" width=\"574,6265\" height=\"246,9887\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 4: Aufruf des COM-Add-Ins von Excel aus<\/span><\/b><\/p>\n<p>Das gleiche Ergebnis erhalten wir mit diesem COM-Add-In auch, wenn wir Access &ouml;ffnen.<\/p>\n<h2>Anpassung der Zielanwendung<\/h2>\n<p>Der erste Schritt der Anpassung des COM-Add-Ins soll sich auf die Anwendung beziehen, in welcher dieses angezeigt wird. Diese Einstellung nehmen wir im Modul <b>DllRegistration <\/b>vor.<\/p>\n<p>Hier finden wir den Code aus Listing 1. Wir sehen ganz oben, dass unter <b>twinBASIC <\/b>Standardmodule in <b>Module [Modulname] <\/b>und <b>End Module <\/b>eingefasst werden m&uuml;ssen. Wir sehen au&szlig;erdem einige Konstanten, welche Informationen enthalten, die in den beiden weiter unten definierten Funktionen zum Einsatz kommen. Die erste speichert den Namen des Projekts, der aus <b>VBA.Compilation.CurrentProjectName <\/b>bezogen wird. Die Klasse <b>Compilation <\/b>ist eine <b>twinBASIC<\/b>-Erweiterung, die Informationen &uuml;ber das aktuelle Projekt liefert und deren Member wir beispielsweise wie in Bild 5 per IntelliSense abfragen k&ouml;nnen. In diesem Fall ermitteln wir den aktuellen Projektnamen. Wie wir den Projektnamen anpassen, zeigen wir weiter unten.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2022_02\/pic_311_005.png\" alt=\"Die Compilation-Klasse per IntelliSense\" width=\"624,6265\" height=\"253,9691\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 5: Die Compilation-Klasse per IntelliSense<\/span><\/b><\/p>\n<p>Die zweite Konstante namens <b>AddinClassName <\/b>erh&auml;lt den Namen der Klasse des Add-Ins. Dieser sollte mit dem Namen der Klasse im anderen Modul des Projekts &uuml;bereinstimmen, in diesem Fall <b>MyCOMAddin<\/b>. Die n&auml;chste Konstante <b>AddinQualifiedClassName <\/b>f&uuml;gt die beiden vorher definierten Konstanten, also <b>AddinProjectName <\/b>und <b>AddinClassName <\/b>zusammen.<\/p>\n<p>Schlie&szlig;lich folgen noch zwei Konstanten namens <b>RootRegistryFolder_ACCESS <\/b>und <b>RootRegistryFolder_EXCEL<\/b>, welche die Pfade zu den zu erstellenden Eintr&auml;gen f&uuml;r das COM-Add-In in der Registry aufnehmen. F&uuml;r Access entsteht so beispielsweise der folgende Wert f&uuml;r diese Konstante:<\/p>\n<pre>HKCU\\SOFTWARE\\Microsoft\\Office\\Access\\Addins\\MyCOMAddin.MyCOMAddin\\<\/pre>\n<h2>Wozu Registry-Eintr&auml;ge?<\/h2>\n<p>Warum machen wir in Zusammenhang mit der Installation eines COM-Add-Ins &uuml;berhaupt so einen Wirbel um Registry-Eintr&auml;ge? Der Grund ist einfach: Die Office-Anwendungen scannen beim Starten einen bestimmten Bereich der Registry, wo die f&uuml;r die jeweilige Anwendung registrierten COM-Add-Ins aufgelistet werden. Die dort angegebenen DLLs werden beim Start der Anwendung ausgelesen und dort untergebrachte Schnittstellen f&uuml;r die Anpassung von Ribbondefinitionen angewendet.<\/p>\n<p>Um zu pr&uuml;fen, ob das soeben erstellte COM-Add-In seinen Platz in der Registry gefunden hat, brauchen wir eigentlich nicht die Registry zu &ouml;ffnen, denn wir haben uns ja durch Starten der Anwendungen <b>Access <\/b>und <b>Excel <\/b>davon &uuml;berzeugt, dass das COM-Add-In f&uuml;r die beiden Anwendungen installiert ist.<\/p>\n<p>Dennoch schauen wir uns die Registry an, wobei wir diese mit dem Befehl <b>RegEdit<\/b> &uuml;ber das <b>Suchen<\/b>-Feld von Windows &ouml;ffnen.<\/p>\n<p>Hier navigieren wir zum folgenden Eintrag:<\/p>\n<pre>Computer\\HKEY_CURRENT_USER\\SOFTWARE\\Microsoft\\Office\\Excel\\Addins\\MyCOMAddin.MyCOMAddin<\/pre>\n<p>Dies ist beispielsweise der Eintrag f&uuml;r Excel. F&uuml;r diesen wurden einige Werte hinterlegt (siehe Bild 6).<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2022_02\/pic_311_006.png\" alt=\"Das Add-In f&uuml;r Excel in der Registry\" width=\"599,6265\" height=\"219,6909\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 6: Das Add-In f&uuml;r Excel in der Registry<\/span><\/b><\/p>\n<p>Diese haben die folgende Bedeutung:<\/p>\n<ul>\n<li><b>Description<\/b>: Beschreibung, die beispielsweise im Bereich <b>Add-Ins <\/b>der Optionen der jeweiligen Anwendung auftaucht<\/li>\n<li><b>FriendlyName<\/b>: Name des COM-Add-Ins, wie er in der Liste der COM-Add-Ins im Dialog <b>COM-Add-Ins <\/b>auftaucht<\/li>\n<li><b>LoadBehaviour<\/b>: Verhalten beim Laden. Normalerweise soll hier der Wert <b>3 <\/b>stehen f&uuml;r <b>Beim Start Laden<\/b>. Diesen Wert sehen wir ebenfalls im Dialog <b>COM-Add-Ins<\/b>.<\/li>\n<\/ul>\n<p>Die Werte f&uuml;r <b>FriendlyName <\/b>und <b>Description <\/b>sowie den Speicherort der DLL finden wir nach der Installation des COM-Add-Ins beispielsweise f&uuml;r Excel im Optionen-Dialog im Bereich <b>Add-Ins<\/b>.<\/p>\n<p>Die einzelnen Werte haben wir in Bild 7 hervorgehoben.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2022_02\/pic_311_007.png\" alt=\"COM-Add-Ins in den Excel-Optionen\" width=\"700\" height=\"369,9999\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 7: COM-Add-Ins in den Excel-Optionen<\/span><\/b><\/p>\n<p>W&auml;hlen wir hier im unteren Bereich f&uuml;r das Kombinationsfeld <b>Verwalten <\/b>den Wert <b>COM-Add-Ins <\/b>aus und klicken auf die Schaltfl&auml;che <b>Los&#8230;<\/b>, finden wir den Dialog aus Bild 8 vor. Hier sehen wir auch den aktuellen Wert f&uuml;r die Eigenschaft <b>Ladeverhalten<\/b>, in diesem Fall <b>Beim Start laden<\/b>.<\/p>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2022_02\/pic_311_008.png\" alt=\"Der Dialog COM-Add-Ins\" width=\"649,627\" height=\"253,0125\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 8: Der Dialog COM-Add-Ins<\/span><\/b><\/p>\n<h2>Funktion zum Einrichten der Registry-Eintr&auml;ge<\/h2>\n<p>Nachdem wir uns nun mit der Bedeutung des Vorhandenseins gewisser Registry-Eintr&auml;ge besch&auml;ftigt haben, wollen wir uns ansehen, wie diese dorthin gelangen.<\/p>\n<p>Diese Aufgabe &uuml;bernimmt die Funktion <b>DllRegisterServer <\/b>im Modul <b>DllRegistration<\/b>. Diese Funktion erzeugt eine Instanz des Objekt <b>wscript.shell<\/b>, welches beispielsweise die Methode <b>RegWrite <\/b>zum Schreiben von Registry-Eintr&auml;gen bereitstellt. Diese nutzen wir, um die ben&ouml;tigten Eintr&auml;ge mit den Werten, die teilweise aus den oben definierten Konstanten stammen, zur Registry hinzuzuf&uuml;gen.<\/p>\n<p>Das alles geschieht unter Deaktivierung der eingebauten Fehlerbehandlung mit <b>On Error Goto RegError<\/b>. Tritt beim Anlegen der Registry-Eintr&auml;ge ein Fehler auf, zeigt die Funktion ein Meldungsfenster mit Details zum aufgetretenen Fehler an.<\/p>\n<h2>Wann wird DllRegisterServer aufgerufen?<\/h2>\n<p>Es gibt zwei Gelegenheiten, zu denen die Funktion <b>DllRegister <\/b>aufgerufen wird. Die erste ist das Bet&auml;tigen der <b>Build<\/b>-Schaltfl&auml;che in der <b>twinBASIC<\/b>-Entwicklungsumgebung.<\/p>\n<p>Ob sie dadurch tats&auml;chlich aufgerufen wird, k&ouml;nnen wir anschlie&szlig;end am Vorhandensein der dort definierten Registry-Eintr&auml;ge feststellen. Wir k&ouml;nnen aber auch einfach eine <b>MsgBox<\/b>-Anweisung einbauen und uns beispielsweise den Pfad in der Registry ausgeben lassen, in welchen die Registry-Informationen geschrieben werden.<\/p>\n<p>Der zweite Zeitpunkt, zu dem diese Funktion aufgerufen wird, ist die Registrierung auf dem jeweiligen Zielrechner mit der Anweisung <b>RegSvr32.exe <\/b>entweder &uuml;ber die Eingabeaufforderung oder auch per Batch-Datei.<\/p>\n<p>Wenn wir die COM-Add-In-Datei also auf einen anderen Rechner kopiert haben und diese installieren wollen, m&uuml;ssen wir diese mehr oder weniger von Hand registrieren, wenn wir nicht gerade ein Setup f&uuml;r das COM-Add-In erstellt haben. Wie wir ein solches Setup erstellen, erl&auml;utern wir noch in einem weiteren Beitrag.<\/p>\n<p>&Uuml;ber die Eingabeaufforderung gelingt das wie folgt:<\/p>\n<ul>\n<li>Als Erstes starten wir die Eingabeaufforderung, und zwar im Administrator-Modus. Dazu geben wir im Suchen-Feld von Windows den Text <b>cmd<\/b> ein und klicken dann mit der rechten Maustaste auf den nun im Suchergebnis erscheinenden Eintrag <b>Eingabeaufforderung<\/b>. Im Kontextmen&uuml; w&auml;hlen wir <b>Als Administrator ausf&uuml;hren <\/b>aus.<\/li>\n<li>Danach navigieren wir zu dem Verzeichnis, in dem sich die <b>.dll<\/b>-Datei befindet, in diesem Fall auf dem Desktop. <\/li>\n<li>Hier geben wir den Befehl <b>Regsvr32.exe MyCOMAddin_win64.dll <\/b>ein.<\/li>\n<li>Hier erhalten wir dann im Optimalfall die Meldung, dass die DLL erfolgreich registriert wurde (siehe Bild 9).<\/li>\n<p class=\"image\"><img decoding=\"async\" src=\"..\/fileadmin\/_temp_\/2022_02\/pic_311_009.png\" alt=\"Installieren per Eingabeaufforderung\" width=\"549,6265\" height=\"220,2271\" \/><\/p>\n<p><b><span style=\"color:darkgrey;\">Bild 9: Installieren per Eingabeaufforderung<\/span><\/b><\/p>\n<\/ul>\n<p>Wir sehen, dass wir die <b>twinBASIC<\/b>-Funktion <b>DllRegisterServer <\/b>auch von der Kommandozeile aus aufrufen k&ouml;nnen. Das er&ouml;ffnet uns auch die M&ouml;glichkeit, dort weitere Mechanismen unterzubringen, die f&uuml;r die Verwendung des COM-Add-Ins noch hilfreich sein k&ouml;nnen &#8211; beispielsweise das Anlegen bestimmter Dateien mit Konfigurationsdateien, die Anzeige von Meldungen w&auml;hrend der Installation et cetera.<\/p>\n<p>Den Befehl <b>Regsvr32.exe <\/b>k&ouml;nnen wir in eine Batch-Datei schreiben und diese dann im Administratormodus aufrufen. Diese Datei nennen wir einfach <b>Register.bat<\/b>. Wenn wir diese Datei im gleichen Verzeichnis platzieren wie die zu registrierende Datei, brauchen wir noch nicht mal den Pfad zur zu registrierenden <b>.dll<\/b>-Datei anzugeben, wie es eigentlich n&ouml;tig w&auml;re, wenn wir nicht in der Eingabeaufforderung zum Verzeichnis mit der <b>.dll<\/b>-Datei navigiert h&auml;tten.<\/p>\n<h2>Funktion zum Entfernen der Registry-Eintr&auml;ge<\/h2>\n<p>Wenn wir ein Element durch Hinzuf&uuml;gen von Eintr&auml;gen zur Registry installieren, wollen wir dieses auch wieder deinstallieren k&ouml;nnen. Dazu k&ouml;nnen wir die Funktion <b>DllUnregisterServer <\/b>nutzen. Der Aufbau dieser Funktion ist dem der Prozedur zum Hinzuf&uuml;gen der Registry-Eintr&auml;ge recht &auml;hnlich. Allerdings nutzen wir hier nicht die Methode <b>RegWrite <\/b>der Klasse <b>wscript.shell<\/b>, sondern die Methode <b>RegDelete<\/b>.<\/p>\n<p>Hier sind nicht nur drei Aufrufe n&ouml;tig, sondern noch ein weiterer. Beim Registrieren werden n&auml;mlich automatisch alle Ordner angelegt, die zu den hinzuzuf&uuml;genden Registry-Eintr&auml;gen f&uuml;hren &#8211; in diesem Fall der Ordner aus der Konstanten <b>AddinQualifiedClassName<\/b>. Den so angelegten Ordner m&uuml;ssen wir beim Deinstallieren nach dem L&ouml;schen der eigentlichen Registry-Eintr&auml;ge separat wieder entfernen.<\/p>\n<p>Der Rest l&auml;uft wie beim Anlegen der Registry-Eintr&auml;ge ab.<\/p>\n<p>Wenn wir die Registrierung auf dem Zielrechner wieder aufheben wollen, k&ouml;nnen wir wie beim Registrieren vorgehen &#8211; wir rufen in der f&uuml;r den Administratorzugriff ge&ouml;ffneten Eingabeaufforderung den gleichen Befehl auf, diesmal allerdings mit dem Parameter <b>-u<\/b>:<\/p>\n<pre>Regsvr32 MyCOMAddin_win32.dll -u<\/pre>\n<h2>Bedingungen f&uuml;r das Registrieren und Deregistrieren von COM-Add-Ins<\/h2>\n<p>Wenn wir ein COM-Add-In f&uuml;r eine Anwendung registrieren, k&ouml;nnen wir dies unabh&auml;ngig davon erledigen, ob die Zielanwendung aktuell ge&ouml;ffnet ist oder nicht. Die einzige Konsequenz, wenn die Anwendung ge&ouml;ffnet ist, ist folgende: Das COM-Add-In ist dann nicht sofort, sondern erst beim n&auml;chsten &Ouml;ffnen der Anwendung verf&uuml;gbar.<\/p>\n<p>Beim Registrieren im Rahmen des Erstellens des COM-Add-Ins von der twinBASIC-Entwicklungsumgebung aus sollten wir die Zielanwendungen jedoch immer schlie&szlig;en. Ansonsten kann es vorkommen, dass beim Versuch, die bestehende Version der <b>.dll<\/b>-Datei zu l&ouml;schen und diese neu zu erstellen, ein Fehler auftritt, weil die <b>.dll<\/b>-Datei gerade in Verwendung ist.<\/p>\n<h2>Modul DLLRegistration auf die Zielanwendung anpassen<\/h2>\n<p>Wenn wir entschieden haben, f&uuml;r welche Anwendung das COM-Add-In zum Einsatz kommen soll, k&ouml;nnen wir die beiden Funktionen <b>DllRegister <\/b>und <b>DllUnregister <\/b>entsprechend anpassen. Wir k&ouml;nnen dann zuerst einen Satz von Registry-Informationen entfernen. Dann passen wir die Funktionen wie folgt an. Die Funktion <b>DLLRegister<\/b> sieht dann wie in Listing 2 aus.<\/p>\n<pre><span style=\"color:blue;\">Public Function <\/span>DllRegisterServer()<span style=\"color:blue;\"> As Boolean<\/span>\r\n     <span style=\"color:blue;\">On Error GoTo<\/span> RegError\r\n     <span style=\"color:blue;\">Dim <\/span>wscript<span style=\"color:blue;\"> As Object<\/span> = CreateObject(\"wscript.shell\")\r\n     wscript.RegWrite RootRegistryFolder & \"FriendlyName\", AddinProjectName + \"_Friendly\", \"REG_SZ\"\r\n     wscript.RegWrite RootRegistryFolder \"Description\", AddinProjectName + \"_Description\", \"REG_SZ\"\r\n     wscript.RegWrite RootRegistryFolder & \"LoadBehavior\", 3, \"REG_DWORD\"\r\n     Return <span style=\"color:blue;\">True<\/span>\r\nRegError:\r\n     <span style=\"color:blue;\">MsgBox<\/span> \"DllRegisterServer -- An error occured trying to write to the system registry:\" & <span style=\"color:blue;\">vbCrLf<\/span> & _\r\n             Err.Description & \" (\" & Hex(Err.Number) & \")\"\r\n     Return <span style=\"color:blue;\">False<\/span>\r\n<span style=\"color:blue;\">End Function<\/span><\/pre>\n<div class=\"rcp_restricted\"><p><span style=\"color: #ff0000\">M&ouml;chten Sie weiterlesen? Dann l&ouml;sen Sie Ihr Ticket!<\/span><br \/>\n<span style=\"color: #ff0000\">Hier geht es zur Bestellung des Jahresabonnements des Magazins <strong>Visual Basic Entwickler<\/strong>:<\/span><br \/>\n<span style=\"color: #ff0000\"><a style=\"color: #ff0000\" href=\"https:\/\/shop.minhorst.com\/magazine\/363\/visual-basic-entwickler-jahresabonnement?c=77\">Zur Bestellung ...<\/a><\/span><br \/>\n<span style=\"color: #ff0000\">Danach greifen Sie sofort auf <strong>alle rund 200 Artikel<\/strong> unseres Angebots zu - auch auf diesen hier!<\/span><br \/>\n<span style=\"color: #000000\">Oder haben Sie bereits Zugangsdaten? Dann loggen Sie sich gleich hier ein:<\/span><\/p>\n<\/div>\n\n\t\n\t<form id=\"rcp_login_form\"  class=\"rcp_form\" method=\"POST\" action=\"https:\/\/vbentwickler.de\/data\/wp\/v2\/posts\/55000311\/\">\n\n\t\t\n\t\t<fieldset class=\"rcp_login_data\">\n\t\t\t<p>\n\t\t\t\t<label for=\"rcp_user_login\">Username or Email<\/label>\n\t\t\t\t<input name=\"rcp_user_login\" id=\"rcp_user_login\" class=\"required\" type=\"text\"\/>\n\t\t\t<\/p>\n\t\t\t<p>\n\t\t\t\t<label for=\"rcp_user_pass\">Password<\/label>\n\t\t\t\t<input name=\"rcp_user_pass\" id=\"rcp_user_pass\" class=\"required\" type=\"password\"\/>\n\t\t\t<\/p>\n\t\t\t\t\t\t<p>\n\t\t\t\t<input type=\"checkbox\" name=\"rcp_user_remember\" id=\"rcp_user_remember\" value=\"1\"\/>\n\t\t\t\t<label for=\"rcp_user_remember\">Remember me<\/label>\n\t\t\t<\/p>\n\t\t\t<p class=\"rcp_lost_password\"><a href=\"\/data\/wp\/v2\/posts\/55000311?rcp_action=lostpassword\"><\/a><\/p>\n\t\t\t<p>\n\t\t\t\t<input type=\"hidden\" name=\"rcp_action\" value=\"login\"\/>\n\t\t\t\t\t\t\t\t\t<input type=\"hidden\" name=\"rcp_redirect\" value=\"https:\/\/vbentwickler.de\/data\/wp\/v2\/posts\/55000311\/\"\/>\n\t\t\t\t\t\t\t\t<input type=\"hidden\" name=\"rcp_login_nonce\" value=\"993793fffe\"\/>\n\t\t\t\t<input id=\"rcp_login_submit\" class=\"rcp-button\" type=\"submit\" value=\"Login\"\/>\n\t\t\t<\/p>\n\t\t\t\t\t<\/fieldset>\n\n\t\t\n\t<\/form>\n<\/p>\n","protected":false},"excerpt":{"rendered":"<p>COM-Add-Ins sind Erweiterungen f&uuml;r Office-Anwendungen und ihre Entwicklungsumgebung, den VBA-Editor. Damit lassen sich Erweiterungen programmieren, die &uuml;ber die Benutzeroberfl&auml;che der jeweiligen Anwendung verf&uuml;gbar gemacht werden und ihre Aufgabe mit oder ohne ein eigenes User-interface bereitstellen. COM-Add-Ins kann man jedoch nicht mit den Mitteln der Office-Anwendungen selbst programmieren. Dazu sind weitere Tools notwendig. Fr&uuml;her ging dies am einfachsten mit Visual Studio 6. Dieses ist jedoch sp&auml;testens seit der Einf&uuml;hrung der 64-Bit-Versionen der Office-Anwendungen nicht mehr nutzbar, sodass Alternativen gefragt sind. Neben Visual Studio .NET, das ebenfalls das Erstellen von COM-Add-Ins erlaubt, erschien vor kurzer Zeit eine neue Alternative: twinBASIC ist ein Projekt von Wayne Phillips, das sich nicht nur anschickt, Nachfolger von Visual Studio 6 zu werden, sondern schon jetzt das Erstellen unter anderem von COM-Add-Ins erm&ouml;glicht. Dieser Artikel stellt die grundlegenden Techniken zum Erstellen eines Ger&uuml;sts f&uuml;r COM-Add-Ins vor, das wir in weiteren Artikel mit praktischen L&ouml;sungen f&uuml;r die Erweiterung der Office-Anwendungen und auch des VBA-Editors nutzen werden.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_uf_show_specific_survey":0,"_uf_disable_surveys":false,"footnotes":""},"categories":[66022022,662022,44000034,44000021],"tags":[],"yst_prominent_words":[],"class_list":["post-55000311","post","type-post","status-publish","format-standard","hentry","category-66022022","category-662022","category-COMAddIns_programmieren","category-Entity_Framework"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 4.9.8 - aioseo.com -->\n\t<meta name=\"description\" content=\"COM-Add-Ins sind Erweiterungen f\u00fcr Office-Anwendungen und ihre Entwicklungsumgebung, den VBA-Editor. Damit lassen sich Erweiterungen programmieren, die \u00fcber die Benutzeroberfl\u00e4che der jeweiligen Anwendung verf\u00fcgbar gemacht werden und ihre Aufgabe mit oder ohne ein eigenes User-interface bereitstellen. COM-Add-Ins kann man jedoch nicht mit den Mitteln der Office-Anwendungen selbst programmieren. Dazu sind weitere Tools notwendig. Fr\u00fcher ging dies am einfachsten mit Visual Studio 6. Dieses ist jedoch sp\u00e4testens seit der Einf\u00fchrung der 64-Bit-Versionen der Office-Anwendungen nicht mehr nutzbar, sodass Alternativen gefragt sind. Neben Visual Studio .NET, das ebenfalls das Erstellen von COM-Add-Ins erlaubt, erschien vor kurzer Zeit eine neue Alternative: twinBASIC ist ein Projekt von Wayne Phillips, das sich nicht nur anschickt, Nachfolger von Visual Studio 6 zu werden, sondern schon jetzt das Erstellen unter anderem von COM-Add-Ins erm\u00f6glicht. Dieser Artikel stellt die grundlegenden Techniken zum Erstellen eines Ger\u00fcsts f\u00fcr COM-Add-Ins vor, das wir in weiteren Artikel mit praktischen L\u00f6sungen f\u00fcr die Erweiterung der Office-Anwendungen und auch des VBA-Editors nutzen werden.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Andr\u00e9 Minhorst\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/vbentwickler.de\/COMAddIns_mit_twinBASIC\/\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 4.9.8\" \/>\n\t\t<meta property=\"og:locale\" content=\"de_DE\" \/>\n\t\t<meta property=\"og:site_name\" content=\"Visual Basic Entwickler - Das Magazin f\u00fcr Datenbankentwickler auf Basis von Visual Studio und Co.\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"COM-Add-Ins mit twinBASIC - Visual Basic Entwickler\" \/>\n\t\t<meta property=\"og:description\" content=\"COM-Add-Ins sind Erweiterungen f\u00fcr Office-Anwendungen und ihre Entwicklungsumgebung, den VBA-Editor. Damit lassen sich Erweiterungen programmieren, die \u00fcber die Benutzeroberfl\u00e4che der jeweiligen Anwendung verf\u00fcgbar gemacht werden und ihre Aufgabe mit oder ohne ein eigenes User-interface bereitstellen. COM-Add-Ins kann man jedoch nicht mit den Mitteln der Office-Anwendungen selbst programmieren. Dazu sind weitere Tools notwendig. Fr\u00fcher ging dies am einfachsten mit Visual Studio 6. Dieses ist jedoch sp\u00e4testens seit der Einf\u00fchrung der 64-Bit-Versionen der Office-Anwendungen nicht mehr nutzbar, sodass Alternativen gefragt sind. Neben Visual Studio .NET, das ebenfalls das Erstellen von COM-Add-Ins erlaubt, erschien vor kurzer Zeit eine neue Alternative: twinBASIC ist ein Projekt von Wayne Phillips, das sich nicht nur anschickt, Nachfolger von Visual Studio 6 zu werden, sondern schon jetzt das Erstellen unter anderem von COM-Add-Ins erm\u00f6glicht. Dieser Artikel stellt die grundlegenden Techniken zum Erstellen eines Ger\u00fcsts f\u00fcr COM-Add-Ins vor, das wir in weiteren Artikel mit praktischen L\u00f6sungen f\u00fcr die Erweiterung der Office-Anwendungen und auch des VBA-Editors nutzen werden.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/vbentwickler.de\/COMAddIns_mit_twinBASIC\/\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/datenbankentwickler.net\/wp-content\/uploads\/2022\/08\/cropped-header_vbe-1.png\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/datenbankentwickler.net\/wp-content\/uploads\/2022\/08\/cropped-header_vbe-1.png\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2023-03-02T17:06:08+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"-001-11-30T00:00:00+00:00\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n\t\t<meta name=\"twitter:title\" content=\"COM-Add-Ins mit twinBASIC - Visual Basic Entwickler\" \/>\n\t\t<meta name=\"twitter:description\" content=\"COM-Add-Ins sind Erweiterungen f\u00fcr Office-Anwendungen und ihre Entwicklungsumgebung, den VBA-Editor. Damit lassen sich Erweiterungen programmieren, die \u00fcber die Benutzeroberfl\u00e4che der jeweiligen Anwendung verf\u00fcgbar gemacht werden und ihre Aufgabe mit oder ohne ein eigenes User-interface bereitstellen. COM-Add-Ins kann man jedoch nicht mit den Mitteln der Office-Anwendungen selbst programmieren. Dazu sind weitere Tools notwendig. Fr\u00fcher ging dies am einfachsten mit Visual Studio 6. Dieses ist jedoch sp\u00e4testens seit der Einf\u00fchrung der 64-Bit-Versionen der Office-Anwendungen nicht mehr nutzbar, sodass Alternativen gefragt sind. Neben Visual Studio .NET, das ebenfalls das Erstellen von COM-Add-Ins erlaubt, erschien vor kurzer Zeit eine neue Alternative: twinBASIC ist ein Projekt von Wayne Phillips, das sich nicht nur anschickt, Nachfolger von Visual Studio 6 zu werden, sondern schon jetzt das Erstellen unter anderem von COM-Add-Ins erm\u00f6glicht. Dieser Artikel stellt die grundlegenden Techniken zum Erstellen eines Ger\u00fcsts f\u00fcr COM-Add-Ins vor, das wir in weiteren Artikel mit praktischen L\u00f6sungen f\u00fcr die Erweiterung der Office-Anwendungen und auch des VBA-Editors nutzen werden.\" \/>\n\t\t<meta name=\"twitter:image\" content=\"https:\/\/datenbankentwickler.net\/wp-content\/uploads\/2022\/08\/cropped-header_vbe-1.png\" \/>\n\t\t<script type=\"application\/ld+json\" class=\"aioseo-schema\">\n\t\t\t{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"BlogPosting\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/COMAddIns_mit_twinBASIC\\\/#blogposting\",\"name\":\"COM-Add-Ins mit twinBASIC - Visual Basic Entwickler\",\"headline\":\"COM-Add-Ins mit twinBASIC\",\"author\":{\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/author\\\/andreminhorst-com\\\/#author\"},\"publisher\":{\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/#organization\"},\"image\":{\"@type\":\"ImageObject\",\"url\":\"..\\\/fileadmin\\\/_temp_\\\/2022_02\\\/pic_311_001.png\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/COMAddIns_mit_twinBASIC\\\/#articleImage\"},\"datePublished\":\"2022-04-01T00:00:00+00:00\",\"dateModified\":\"-0001-11-30T00:00:00+00:00\",\"inLanguage\":\"de-DE\",\"commentCount\":2,\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/COMAddIns_mit_twinBASIC\\\/#webpage\"},\"isPartOf\":{\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/COMAddIns_mit_twinBASIC\\\/#webpage\"},\"articleSection\":\"2\\\/2022, 2022, COM-Add-Ins programmieren, Entity Framework\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/COMAddIns_mit_twinBASIC\\\/#breadcrumblist\",\"itemListElement\":[{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/vbentwickler.de#listItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/vbentwickler.de\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/category\\\/2022\\\/#listItem\",\"name\":\"2022\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/category\\\/2022\\\/#listItem\",\"position\":2,\"name\":\"2022\",\"item\":\"https:\\\/\\\/vbentwickler.de\\\/category\\\/2022\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/category\\\/2022\\\/2\\\/2022\\\/#listItem\",\"name\":\"2\\\/2022\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/vbentwickler.de#listItem\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/category\\\/2022\\\/2\\\/2022\\\/#listItem\",\"position\":3,\"name\":\"2\\\/2022\",\"item\":\"https:\\\/\\\/vbentwickler.de\\\/category\\\/2022\\\/2\\\/2022\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/COMAddIns_mit_twinBASIC\\\/#listItem\",\"name\":\"COM-Add-Ins mit twinBASIC\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/category\\\/2022\\\/#listItem\",\"name\":\"2022\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/COMAddIns_mit_twinBASIC\\\/#listItem\",\"position\":4,\"name\":\"COM-Add-Ins mit twinBASIC\",\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/category\\\/2022\\\/2\\\/2022\\\/#listItem\",\"name\":\"2\\\/2022\"}}]},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/#organization\",\"name\":\"Datenbankentwickler\",\"description\":\"Das Magazin f\\u00fcr Datenbankentwickler auf Basis von Visual Studio und Co.\",\"url\":\"https:\\\/\\\/vbentwickler.de\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/vbentwickler.de\\\/wp-content\\\/uploads\\\/2022\\\/08\\\/cropped-header_vbe-1.png\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/COMAddIns_mit_twinBASIC\\\/#organizationLogo\",\"width\":664,\"height\":225},\"image\":{\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/COMAddIns_mit_twinBASIC\\\/#organizationLogo\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/author\\\/andreminhorst-com\\\/#author\",\"url\":\"https:\\\/\\\/vbentwickler.de\\\/author\\\/andreminhorst-com\\\/\",\"name\":\"Andr\\u00e9 Minhorst\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/COMAddIns_mit_twinBASIC\\\/#authorImage\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g\",\"width\":96,\"height\":96,\"caption\":\"Andr\\u00e9 Minhorst\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/COMAddIns_mit_twinBASIC\\\/#webpage\",\"url\":\"https:\\\/\\\/vbentwickler.de\\\/COMAddIns_mit_twinBASIC\\\/\",\"name\":\"COM-Add-Ins mit twinBASIC - Visual Basic Entwickler\",\"description\":\"COM-Add-Ins sind Erweiterungen f\\u00fcr Office-Anwendungen und ihre Entwicklungsumgebung, den VBA-Editor. Damit lassen sich Erweiterungen programmieren, die \\u00fcber die Benutzeroberfl\\u00e4che der jeweiligen Anwendung verf\\u00fcgbar gemacht werden und ihre Aufgabe mit oder ohne ein eigenes User-interface bereitstellen. COM-Add-Ins kann man jedoch nicht mit den Mitteln der Office-Anwendungen selbst programmieren. Dazu sind weitere Tools notwendig. Fr\\u00fcher ging dies am einfachsten mit Visual Studio 6. Dieses ist jedoch sp\\u00e4testens seit der Einf\\u00fchrung der 64-Bit-Versionen der Office-Anwendungen nicht mehr nutzbar, sodass Alternativen gefragt sind. Neben Visual Studio .NET, das ebenfalls das Erstellen von COM-Add-Ins erlaubt, erschien vor kurzer Zeit eine neue Alternative: twinBASIC ist ein Projekt von Wayne Phillips, das sich nicht nur anschickt, Nachfolger von Visual Studio 6 zu werden, sondern schon jetzt das Erstellen unter anderem von COM-Add-Ins erm\\u00f6glicht. Dieser Artikel stellt die grundlegenden Techniken zum Erstellen eines Ger\\u00fcsts f\\u00fcr COM-Add-Ins vor, das wir in weiteren Artikel mit praktischen L\\u00f6sungen f\\u00fcr die Erweiterung der Office-Anwendungen und auch des VBA-Editors nutzen werden.\",\"inLanguage\":\"de-DE\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/COMAddIns_mit_twinBASIC\\\/#breadcrumblist\"},\"author\":{\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/author\\\/andreminhorst-com\\\/#author\"},\"creator\":{\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/author\\\/andreminhorst-com\\\/#author\"},\"datePublished\":\"2022-04-01T00:00:00+00:00\",\"dateModified\":\"-0001-11-30T00:00:00+00:00\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/#website\",\"url\":\"https:\\\/\\\/vbentwickler.de\\\/\",\"name\":\"Datenbankentwickler\",\"description\":\"Das Magazin f\\u00fcr Datenbankentwickler auf Basis von Visual Studio und Co.\",\"inLanguage\":\"de-DE\",\"publisher\":{\"@id\":\"https:\\\/\\\/vbentwickler.de\\\/#organization\"}}]}\n\t\t<\/script>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"COM-Add-Ins mit twinBASIC - Visual Basic Entwickler","description":"COM-Add-Ins sind Erweiterungen f\u00fcr Office-Anwendungen und ihre Entwicklungsumgebung, den VBA-Editor. Damit lassen sich Erweiterungen programmieren, die \u00fcber die Benutzeroberfl\u00e4che der jeweiligen Anwendung verf\u00fcgbar gemacht werden und ihre Aufgabe mit oder ohne ein eigenes User-interface bereitstellen. COM-Add-Ins kann man jedoch nicht mit den Mitteln der Office-Anwendungen selbst programmieren. Dazu sind weitere Tools notwendig. Fr\u00fcher ging dies am einfachsten mit Visual Studio 6. Dieses ist jedoch sp\u00e4testens seit der Einf\u00fchrung der 64-Bit-Versionen der Office-Anwendungen nicht mehr nutzbar, sodass Alternativen gefragt sind. Neben Visual Studio .NET, das ebenfalls das Erstellen von COM-Add-Ins erlaubt, erschien vor kurzer Zeit eine neue Alternative: twinBASIC ist ein Projekt von Wayne Phillips, das sich nicht nur anschickt, Nachfolger von Visual Studio 6 zu werden, sondern schon jetzt das Erstellen unter anderem von COM-Add-Ins erm\u00f6glicht. Dieser Artikel stellt die grundlegenden Techniken zum Erstellen eines Ger\u00fcsts f\u00fcr COM-Add-Ins vor, das wir in weiteren Artikel mit praktischen L\u00f6sungen f\u00fcr die Erweiterung der Office-Anwendungen und auch des VBA-Editors nutzen werden.","canonical_url":"https:\/\/vbentwickler.de\/COMAddIns_mit_twinBASIC\/","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"BlogPosting","@id":"https:\/\/vbentwickler.de\/COMAddIns_mit_twinBASIC\/#blogposting","name":"COM-Add-Ins mit twinBASIC - Visual Basic Entwickler","headline":"COM-Add-Ins mit twinBASIC","author":{"@id":"https:\/\/vbentwickler.de\/author\/andreminhorst-com\/#author"},"publisher":{"@id":"https:\/\/vbentwickler.de\/#organization"},"image":{"@type":"ImageObject","url":"..\/fileadmin\/_temp_\/2022_02\/pic_311_001.png","@id":"https:\/\/vbentwickler.de\/COMAddIns_mit_twinBASIC\/#articleImage"},"datePublished":"2022-04-01T00:00:00+00:00","dateModified":"-0001-11-30T00:00:00+00:00","inLanguage":"de-DE","commentCount":2,"mainEntityOfPage":{"@id":"https:\/\/vbentwickler.de\/COMAddIns_mit_twinBASIC\/#webpage"},"isPartOf":{"@id":"https:\/\/vbentwickler.de\/COMAddIns_mit_twinBASIC\/#webpage"},"articleSection":"2\/2022, 2022, COM-Add-Ins programmieren, Entity Framework"},{"@type":"BreadcrumbList","@id":"https:\/\/vbentwickler.de\/COMAddIns_mit_twinBASIC\/#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/vbentwickler.de#listItem","position":1,"name":"Home","item":"https:\/\/vbentwickler.de","nextItem":{"@type":"ListItem","@id":"https:\/\/vbentwickler.de\/category\/2022\/#listItem","name":"2022"}},{"@type":"ListItem","@id":"https:\/\/vbentwickler.de\/category\/2022\/#listItem","position":2,"name":"2022","item":"https:\/\/vbentwickler.de\/category\/2022\/","nextItem":{"@type":"ListItem","@id":"https:\/\/vbentwickler.de\/category\/2022\/2\/2022\/#listItem","name":"2\/2022"},"previousItem":{"@type":"ListItem","@id":"https:\/\/vbentwickler.de#listItem","name":"Home"}},{"@type":"ListItem","@id":"https:\/\/vbentwickler.de\/category\/2022\/2\/2022\/#listItem","position":3,"name":"2\/2022","item":"https:\/\/vbentwickler.de\/category\/2022\/2\/2022\/","nextItem":{"@type":"ListItem","@id":"https:\/\/vbentwickler.de\/COMAddIns_mit_twinBASIC\/#listItem","name":"COM-Add-Ins mit twinBASIC"},"previousItem":{"@type":"ListItem","@id":"https:\/\/vbentwickler.de\/category\/2022\/#listItem","name":"2022"}},{"@type":"ListItem","@id":"https:\/\/vbentwickler.de\/COMAddIns_mit_twinBASIC\/#listItem","position":4,"name":"COM-Add-Ins mit twinBASIC","previousItem":{"@type":"ListItem","@id":"https:\/\/vbentwickler.de\/category\/2022\/2\/2022\/#listItem","name":"2\/2022"}}]},{"@type":"Organization","@id":"https:\/\/vbentwickler.de\/#organization","name":"Datenbankentwickler","description":"Das Magazin f\u00fcr Datenbankentwickler auf Basis von Visual Studio und Co.","url":"https:\/\/vbentwickler.de\/","logo":{"@type":"ImageObject","url":"https:\/\/vbentwickler.de\/wp-content\/uploads\/2022\/08\/cropped-header_vbe-1.png","@id":"https:\/\/vbentwickler.de\/COMAddIns_mit_twinBASIC\/#organizationLogo","width":664,"height":225},"image":{"@id":"https:\/\/vbentwickler.de\/COMAddIns_mit_twinBASIC\/#organizationLogo"}},{"@type":"Person","@id":"https:\/\/vbentwickler.de\/author\/andreminhorst-com\/#author","url":"https:\/\/vbentwickler.de\/author\/andreminhorst-com\/","name":"Andr\u00e9 Minhorst","image":{"@type":"ImageObject","@id":"https:\/\/vbentwickler.de\/COMAddIns_mit_twinBASIC\/#authorImage","url":"https:\/\/secure.gravatar.com\/avatar\/1b9d010cf1716692cb9c34f21554e07d17d461acaea5b61b8cb21cbec678d48a?s=96&d=mm&r=g","width":96,"height":96,"caption":"Andr\u00e9 Minhorst"}},{"@type":"WebPage","@id":"https:\/\/vbentwickler.de\/COMAddIns_mit_twinBASIC\/#webpage","url":"https:\/\/vbentwickler.de\/COMAddIns_mit_twinBASIC\/","name":"COM-Add-Ins mit twinBASIC - Visual Basic Entwickler","description":"COM-Add-Ins sind Erweiterungen f\u00fcr Office-Anwendungen und ihre Entwicklungsumgebung, den VBA-Editor. Damit lassen sich Erweiterungen programmieren, die \u00fcber die Benutzeroberfl\u00e4che der jeweiligen Anwendung verf\u00fcgbar gemacht werden und ihre Aufgabe mit oder ohne ein eigenes User-interface bereitstellen. COM-Add-Ins kann man jedoch nicht mit den Mitteln der Office-Anwendungen selbst programmieren. Dazu sind weitere Tools notwendig. Fr\u00fcher ging dies am einfachsten mit Visual Studio 6. Dieses ist jedoch sp\u00e4testens seit der Einf\u00fchrung der 64-Bit-Versionen der Office-Anwendungen nicht mehr nutzbar, sodass Alternativen gefragt sind. Neben Visual Studio .NET, das ebenfalls das Erstellen von COM-Add-Ins erlaubt, erschien vor kurzer Zeit eine neue Alternative: twinBASIC ist ein Projekt von Wayne Phillips, das sich nicht nur anschickt, Nachfolger von Visual Studio 6 zu werden, sondern schon jetzt das Erstellen unter anderem von COM-Add-Ins erm\u00f6glicht. Dieser Artikel stellt die grundlegenden Techniken zum Erstellen eines Ger\u00fcsts f\u00fcr COM-Add-Ins vor, das wir in weiteren Artikel mit praktischen L\u00f6sungen f\u00fcr die Erweiterung der Office-Anwendungen und auch des VBA-Editors nutzen werden.","inLanguage":"de-DE","isPartOf":{"@id":"https:\/\/vbentwickler.de\/#website"},"breadcrumb":{"@id":"https:\/\/vbentwickler.de\/COMAddIns_mit_twinBASIC\/#breadcrumblist"},"author":{"@id":"https:\/\/vbentwickler.de\/author\/andreminhorst-com\/#author"},"creator":{"@id":"https:\/\/vbentwickler.de\/author\/andreminhorst-com\/#author"},"datePublished":"2022-04-01T00:00:00+00:00","dateModified":"-0001-11-30T00:00:00+00:00"},{"@type":"WebSite","@id":"https:\/\/vbentwickler.de\/#website","url":"https:\/\/vbentwickler.de\/","name":"Datenbankentwickler","description":"Das Magazin f\u00fcr Datenbankentwickler auf Basis von Visual Studio und Co.","inLanguage":"de-DE","publisher":{"@id":"https:\/\/vbentwickler.de\/#organization"}}]},"og:locale":"de_DE","og:site_name":"Visual Basic Entwickler - Das Magazin f\u00fcr Datenbankentwickler auf Basis von Visual Studio und Co.","og:type":"article","og:title":"COM-Add-Ins mit twinBASIC - Visual Basic Entwickler","og:description":"COM-Add-Ins sind Erweiterungen f\u00fcr Office-Anwendungen und ihre Entwicklungsumgebung, den VBA-Editor. Damit lassen sich Erweiterungen programmieren, die \u00fcber die Benutzeroberfl\u00e4che der jeweiligen Anwendung verf\u00fcgbar gemacht werden und ihre Aufgabe mit oder ohne ein eigenes User-interface bereitstellen. COM-Add-Ins kann man jedoch nicht mit den Mitteln der Office-Anwendungen selbst programmieren. Dazu sind weitere Tools notwendig. Fr\u00fcher ging dies am einfachsten mit Visual Studio 6. Dieses ist jedoch sp\u00e4testens seit der Einf\u00fchrung der 64-Bit-Versionen der Office-Anwendungen nicht mehr nutzbar, sodass Alternativen gefragt sind. Neben Visual Studio .NET, das ebenfalls das Erstellen von COM-Add-Ins erlaubt, erschien vor kurzer Zeit eine neue Alternative: twinBASIC ist ein Projekt von Wayne Phillips, das sich nicht nur anschickt, Nachfolger von Visual Studio 6 zu werden, sondern schon jetzt das Erstellen unter anderem von COM-Add-Ins erm\u00f6glicht. Dieser Artikel stellt die grundlegenden Techniken zum Erstellen eines Ger\u00fcsts f\u00fcr COM-Add-Ins vor, das wir in weiteren Artikel mit praktischen L\u00f6sungen f\u00fcr die Erweiterung der Office-Anwendungen und auch des VBA-Editors nutzen werden.","og:url":"https:\/\/vbentwickler.de\/COMAddIns_mit_twinBASIC\/","og:image":"https:\/\/datenbankentwickler.net\/wp-content\/uploads\/2022\/08\/cropped-header_vbe-1.png","og:image:secure_url":"https:\/\/datenbankentwickler.net\/wp-content\/uploads\/2022\/08\/cropped-header_vbe-1.png","article:published_time":"2023-03-02T17:06:08+00:00","article:modified_time":"-001-11-30T00:00:00+00:00","twitter:card":"summary_large_image","twitter:title":"COM-Add-Ins mit twinBASIC - Visual Basic Entwickler","twitter:description":"COM-Add-Ins sind Erweiterungen f\u00fcr Office-Anwendungen und ihre Entwicklungsumgebung, den VBA-Editor. Damit lassen sich Erweiterungen programmieren, die \u00fcber die Benutzeroberfl\u00e4che der jeweiligen Anwendung verf\u00fcgbar gemacht werden und ihre Aufgabe mit oder ohne ein eigenes User-interface bereitstellen. COM-Add-Ins kann man jedoch nicht mit den Mitteln der Office-Anwendungen selbst programmieren. Dazu sind weitere Tools notwendig. Fr\u00fcher ging dies am einfachsten mit Visual Studio 6. Dieses ist jedoch sp\u00e4testens seit der Einf\u00fchrung der 64-Bit-Versionen der Office-Anwendungen nicht mehr nutzbar, sodass Alternativen gefragt sind. Neben Visual Studio .NET, das ebenfalls das Erstellen von COM-Add-Ins erlaubt, erschien vor kurzer Zeit eine neue Alternative: twinBASIC ist ein Projekt von Wayne Phillips, das sich nicht nur anschickt, Nachfolger von Visual Studio 6 zu werden, sondern schon jetzt das Erstellen unter anderem von COM-Add-Ins erm\u00f6glicht. Dieser Artikel stellt die grundlegenden Techniken zum Erstellen eines Ger\u00fcsts f\u00fcr COM-Add-Ins vor, das wir in weiteren Artikel mit praktischen L\u00f6sungen f\u00fcr die Erweiterung der Office-Anwendungen und auch des VBA-Editors nutzen werden.","twitter:image":"https:\/\/datenbankentwickler.net\/wp-content\/uploads\/2022\/08\/cropped-header_vbe-1.png"},"aioseo_meta_data":{"post_id":"55000311","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":"default","schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"limit_modified_date":false,"created":"2024-01-30 16:32:43","updated":"2026-05-16 08:58:56","ai":null,"breadcrumb_settings":null,"seo_analyzer_scan_date":null},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/vbentwickler.de\" title=\"Home\">Home<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/vbentwickler.de\/category\/2022\/\" title=\"2022\">2022<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/vbentwickler.de\/category\/2022\/2\/2022\/\" title=\"2\/2022\">2\/2022<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\tCOM-Add-Ins mit twinBASIC\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Home","link":"https:\/\/vbentwickler.de"},{"label":"2022","link":"https:\/\/vbentwickler.de\/category\/2022\/"},{"label":"2\/2022","link":"https:\/\/vbentwickler.de\/category\/2022\/2\/2022\/"},{"label":"COM-Add-Ins mit twinBASIC","link":"https:\/\/vbentwickler.de\/COMAddIns_mit_twinBASIC\/"}],"_links":{"self":[{"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/posts\/55000311","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/comments?post=55000311"}],"version-history":[{"count":0,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/posts\/55000311\/revisions"}],"wp:attachment":[{"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/media?parent=55000311"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/categories?post=55000311"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/tags?post=55000311"},{"taxonomy":"yst_prominent_words","embeddable":true,"href":"https:\/\/vbentwickler.de\/data\/wp\/v2\/yst_prominent_words?post=55000311"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}