vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
sevAniGif - als kostenlose Vollversion auf unserer vb@rchiv CD Vol.5  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Visual-Basic Einsteiger
Re: 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

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

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