| |
Visual-Basic EinsteigerRe: Mit VBA COM Add-in abfragen ob aktiviert oder nicht | | | Autor: effeff | Datum: 17.09.12 16:06 |
| Wie greifst du mittels VBA-Code auf dein Addin zu (Beispielcode)?
Normalerweise erstellst du vielleicht ein Com-Objekt; Beim Versuch, dieses Com-Objekt zu laden, wird dieses "Nothing" sein, wenn es nichts zu laden gibt. Das muss man eben abfangen und kann dann den Code unterbrechen.
EALA FREYA FRESENA | |
Mit VBA COM Add-in abfragen ob aktiviert oder nicht | | | Autor: lexyart | Datum: 17.09.12 08:53 |
| Hallo,
bin VBA Anfänger und weiß nicht ob das was ich vorhabe
möglich ist oder wie man es lösen kann.
Ich habe eine Word Datei wo im VBA Code auf ein COM-Addin
zugegriffen wird. Wenn dieses Addin nicht geladen ist
stürzt mir Word 2010 ab.
Kann ich im VBA Code prüfen ob dieses Com Addin überhaupt
geladen bzw die Funktion verfügbar ist, damit ich
das Skript abbrechen oder einen Fehler ausgeben kann.
Danke | |
Re: Mit VBA COM Add-in abfragen ob aktiviert oder nicht | | | Autor: lexyart | Datum: 17.09.12 16:52 |
| Also am Anfang vom Code steht das:
Public Declare Function GetValue Lib "123.WLL" (ByVal Field As String) As String Im Word gibt es 2 Com-Add-Ins eine xyname.vsto und eine xyname.dll.
Für was die sind weiß ich nicht, nur wenn die nicht aktiviert sind,
schmiert mir das Word danach bei dem Aufruf ab:
strVorname = GetValue("Vorname") Sobald die Com-Add-Ins aktiv sind läuft der Code ohne Probleme durch.
Ich würde gern prüfen, sofern möglich, wenn die vsto und dll nicht aktiv, soll er das
Skript davor beenden oder eine Fehlermeldung bringen.
Gruß Lexy | |
Re: Mit VBA COM Add-in abfragen ob aktiviert oder nicht | | | Autor: Blackbox | Datum: 17.09.12 18:57 |
| Hi,
da führen viele Wege zum gleichen Ziel. Eine wll ist ein Word Add-in, das aber wie eine "normale" DLL erstellt werden kann. D.H.: Es ist mit jedem C-Compiler möglich, eine solche DLL zu erstellen. Sie wird auch wie jede DLL in den Speicher geladen.
Somit kann man zum Einen schon checken, ob die DLL auf dem System ist:
hModule = LoadLibrary("DLLName")
LoadLibrary ist eine Funktion der Kernel32.dll. Um die Funktion benützen zu können muss in einem Modul eine Deklaration dieser Funktion so eingfügt werden:
Private Declare Function LoadLibrary Lib "kernel32.dll" Alias "LoadLibraryA" _
(ByVal lpLibFileName As String) As Long Ist dann der Rückgabewert von hModule = 0, so existiert diese WLL oder DLL nicht.
In Word-VBA braucht man das aber auch nicht unbedingt, weil Word-VBA eine Auflistung der geladenen Add-Ins hat. Die kannst Du so zB checken:
Sub test()
Dim myAd As AddIn
For Each myAd In Application.AddIns
MsgBox myAd.Name
Next
End Sub | |
Re: Mit VBA COM Add-in abfragen ob aktiviert oder nicht | | | Autor: lexyart | Datum: 18.09.12 09:24 |
| Danke für die Antwort,
aber das Application.AddIns fragt nur die normalen Addins ab, aber
nicht die COM-Add-Ins.
Alle Dateien die benötigt werden bestehen auf dem System wie die 123.WLL
und die zwei Com-Add-Ins xyname.vsto und xyname.dll. Diese sind nur nicht
aktiv also angehakt.
NACHTRAG:
Ich habs jetzt so gelöst. Bei mir gehts auch ohne For Schleife aber
falls jemand mehr wie 2 Com-Add-Ins hat hilfts vllt:
Dim comcount As Integer
Dim j As Integer
comcount = Application.COMAddIns.Count
For j = 1 To comcount
If Application.COMAddIns(j).Connect Then
Else
Exit Sub
End If
Next Ich weiß jeder VBA Entwickler wirft bei dem Code die Hände übern Kopf
aber ich feile noch dran
Geholfen hat mir auch die Seite wo die ComAddin Objekte erklärt werden.
http://msdn.microsoft.com/en-us/library/office/aa831759%28v=office.10%29.aspx
Gruß Lexy
Beitrag wurde zuletzt am 18.09.12 um 09:52:54 editiert. | |
| Sie sind nicht angemeldet! Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.
Einloggen | Neu registrieren |
|
|
sevZIP40 Pro DLL
Zippen und Unzippen wie die Profis!
Mit nur wenigen Zeilen Code statten Sie Ihre Anwendungen ab sofort mit schnellen Zip- und Unzip-Funktionen aus. Hierbei lassen sich entweder einzelnen Dateien oder auch gesamte Ordner zippen bzw. entpacken. Weitere InfosTipp des Monats Access-Tools Vol.1
Über 400 MByte Inhalt
Mehr als 250 Access-Beispiele, 25 Add-Ins und ActiveX-Komponenten, 16 VB-Projekt inkl. Source, mehr als 320 Tipps & Tricks für Access und VB
Nur 24,95 EURWeitere Infos
|
|
|
Copyright ©2000-2024 vb@rchiv Dieter Otter Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.
Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel
|
|