Benutzer mit den meisten Antworten
VBIDE - Broken Reference lässt sich nicht auslesen

Frage
-
Hi Community
ich möchte den Code einer Anwendung (egal ob word, excel oder access) in ein Word-Dokument schreiben um damit später einen Codereview (Office 2007 ==> Office 2010) durchzuführen. Am Anfang des Dokuments sollen die Referenzen aufgelistet werden.</p><p>Klappt alles so weit wunderbar, solange alle referenzen funktionieren. Mit folgendem Codefragment ermittle ich die Referenzen. Jetzt bin ich bei einer Excel-Anwendung auf das Problem gestoßen, dass die in der Anwendung angegebene referenz auf meinem Rechner nicht verfügbar ist. Ist soweit nicht tragisch, da die Anwendung bei mir eh nicht laufen soll, ich brauche nur den Code.
Deklaration:
' VBE-Elemente
Public objVBProject As VBIDE.VBProject
Public objVBComponent As VBIDE.VBComponent
Public objVBReference As VBIDE.ReferenceProcedur:
...
For Each objVBReference In objVBProject.References
l = l + 1
Dim strRefName As String
Dim strRefPath As String
strRefName = objVBReference.Name:strRefPath = objVBReference.FullPath
'Verweis schreiben
Set myWDRng = myWDDoc.Content
myWDRng.Collapse wdCollapseEnd
myWDRng.Text = strRefName & vbVerticalTab & strRefPath
myWDRng.Style = ("Standard")
myWDRng.InsertParagraphAfter
Next objVBReference...
Funktioniert alles soweit gut, nur wenn ich mit
strRefName = objVBReference.Name
auf eine broken Reference komme, bekomme ich die Fehlermeldung: "48 - Fehler beim Laden einer DLL"
Wie komme ich an den Namen der referenz, der ja im Referenzen-Fenster durchaus verfügbar ist??
Danke
Roland Grothe
It's no problem, it's just the syntax
Antworten
-
Der Unterschied ist, dass ich die Referenzen des Application Objekts benutze.
Ich habe bei mir nie eine Referenz auf die VBIDE drin. Mein VBA (aus Access) kennt das Objekt VBIDE nicht ohne eine Referenz darauf zu setzen. Kontrolliere mal, woher das kommt (Rechte Maustaste und dann Definition auswählen). Es könnte ja sein, dass bereits diese nicht gut ist und dann kannst Du dort auch nicht die References Collection abfragen. Das Application Object gibt es auf jeden Fall, sonst könntest Du die Anwendung nicht starten.
Gruss
Henry
- Als Antwort markiert Roland Grothe Montag, 15. April 2013 14:00
Alle Antworten
-
Hallo Roland
Versuch' mal ob es so geht:
Dim objAppReference As Reference For Each objAppReference in Application.References Dim strRefName As String Dim strRefPath As String 'allenfals auf objAppReference.isBroken prüfen strRefName = objAppReference.Name strRefPath = objAppReference.FullPath .. Next
Das ist der Weg, den ich jeweils in Access benutze.
Gruss
Henry
-
Der Unterschied ist, dass ich die Referenzen des Application Objekts benutze.
Ich habe bei mir nie eine Referenz auf die VBIDE drin. Mein VBA (aus Access) kennt das Objekt VBIDE nicht ohne eine Referenz darauf zu setzen. Kontrolliere mal, woher das kommt (Rechte Maustaste und dann Definition auswählen). Es könnte ja sein, dass bereits diese nicht gut ist und dann kannst Du dort auch nicht die References Collection abfragen. Das Application Object gibt es auf jeden Fall, sonst könntest Du die Anwendung nicht starten.
Gruss
Henry
- Als Antwort markiert Roland Grothe Montag, 15. April 2013 14:00