Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Objekt (Extra\Verweise) in VBA einbinden

Objekt (Extra\Verweise) in VBA einbinden
Lorenz
Hallo VBA ler
Wie soll (kann) man die Bibliothek "Microsoft Office 14.0 Access Database Engine Object Library" mittel VBA einbinden?
Weis jemand Bescheid (oder eine Musterdatei)
Bin leider über googeln nicht weitergekommen.
Gruß
Lorenz
Anzeige
AW: Objekt (Extra\Verweise) in VBA einbinden
24.04.2012 13:32:22
Markus
Hallo Lorenz
Wenn ich die Überschrift "Extra\Verweise" lese, dann frage ich mich, was du genau wissen möchtest, da du ja die Lösung schon mitlieferst - Menü Extra | Verweise , und dann bei "Microsoft Office 14.0 Access Database Engine Object Library" ein Häckchen setzen.
Kannst du vielleicht etwas spezifischer werden, wo das Problem liegt.
Gruss Markus
Anzeige
AW: Objekt (Extra\Verweise) in VBA einbinden
24.04.2012 13:38:30
Lorenz
Hallo Markus!
Das mit der "Überschrift" mag ja stimmen. Ich möchte falls der Verweis nicht gesetzt ist, diesen mittels VBA beim z.B. öffnen der Datei automatisiert geschehen lassen. Dies wäre der Wunsch (nicht das Problem) ;-)
Grüsse Lorenz
AW: Objekt (Extra\Verweise) in VBA einbinden
24.04.2012 13:46:39
Markus
Hallo Lorenz
Schau mal ob dir folgender Link weiterhilft: http://support.microsoft.com/kb/308340/de
Gruss Markus
Anzeige
AW: Objekt (Extra\Verweise) in VBA einbinden
24.04.2012 14:27:28
Lorenz
Hallo Markus
Nein nicht wirklich.
Grüße
Lorenz
AW: Objekt (Extra\Verweise) in VBA einbinden
25.04.2012 19:02:18
Markus
Hallo Lorenz
du sagst, dass mein Link nicht weiterhilft. Da bin ich aber gar nicht deiner Meinung.
Wollte es eigentlich bei diesen 2 Sätzen belassen und habe mich danach doch durchgerungen ein Beispiel zu erstellen, da es vielleicht Anderen auch mal nützlich ist.
Der Verweis kann dem VBProjekt während der Laufzeit mit den Methoden AddFromFile, resp. AddFromGuid hinzugefügt werden. Dazu muss aber bereits ein Verweis auf die Bibliothek "Microsoft Visual Basic for Applications Extensibility" vorhanden sein (Menu Extras | Verweise).
Mit meiner Prozedur ListReferences() kannst du Name, GUID, Version und Pfad der Verweise ermitteln, und mit den 2 Prozeduren TestGuid() und TestFile() das Ganze testen.
Habe keine Kommentare eingefügt, da ich annehme, dass der Code auch so verständlich ist :-)
Gruss Markus
-----------------------------------
Option Explicit
Sub ListReferences()
Dim ref As Reference
For Each ref In Application.VBE.ActiveVBProject.References
Debug.Print ref.Name & " : " & ref.GUID & " - " & ref.Major & " - " & ref.Minor & " - "  _
& ref.FullPath
Next
End Sub

Sub TestGuid()
AddReferenceFromGuid "{632B6060-BBC6-11D2-A329-006097C4E476}", 1, 0  ' Windows Media  _
Encoder
End Sub

Sub TestFile()
AddReferenceFromFile "C:\Program Files (x86)\Windows Media Components\Encoder\wmenc.exe"  '  _
Windows Media Encoder"
End Sub

Sub AddReferenceFromFile(strName As String)
Dim blnRefExists As Boolean
Dim ref As Reference
For Each ref In Application.VBE.ActiveVBProject.References
If ref.FullPath = strName Then
blnRefExists = True
MsgBox "Verweis auf """ & ref.Name & """ war schon gesetzt!"
Exit For
End If
Next
If Not blnRefExists Then
On Error Resume Next
Set ref = Application.VBE.ActiveVBProject.References.AddFromFile(strName)
If Err.Number  0 Then
MsgBox "Verweis auf """ & strName & """ konnte nicht erstellt werden!"
Else
MsgBox "Verweis auf """ & strName & """ wurde erstellt!"
End If
End If
End Sub

Sub AddReferenceFromGuid(strGUID As String, lngMajor As Long, lngMinor As Long)
Dim blnRefExists As Boolean
Dim ref As Reference
For Each ref In Application.VBE.ActiveVBProject.References
If ref.GUID = strGUID Then
blnRefExists = True
If ref.Major  lngMajor Or ref.Minor  lngMinor Then
MsgBox "Versionsnummer von " & ref.Name & " nicht identisch!"
Else
MsgBox "Verweis auf """ & ref.Name & """ war schon gesetzt!"
End If
Exit For
End If
Next
If Not blnRefExists Then
On Error Resume Next
Set ref = Application.VBE.ActiveVBProject.References.AddFromGuid(strGUID, lngMajor,  _
lngMinor)
If Err.Number  0 Then
MsgBox "Verweis konnte nicht erstellt werden!" & vbCrLf _
& "GUID: " & strGUID
Else
MsgBox "Verweis auf """ & ref.Name & """ wurde erstellt!"
End If
End If
End Sub

Anzeige
AW: Objekt (Extra\Verweise) in VBA einbinden
26.04.2012 21:05:03
Lorenz
Hallo Markus
dein empfohlener Link hat aus folgenden Gründen nicht geholfen:
1.) programmatischer Fehler (es waren aus welchen Grund auch immer Sicherheitseinstellungen geändert!?!)
das habe ich gefunden u. auch behoben, aber dann ging es weiter mit:
2.) dein Code ,aber auch der des Link´s löste permanent einen Compilierfehler aus, denen ich nicht "Herr" wurde zwar "Benutzerdefinierter Typ nicht definiert".
Da habe ich weiteres Probieren vorübergehend eingestellt. Aber mit dinen erstellten SubRoutinen werde ich auch noch diesesProb. lösen.
Danke für das von dir erstellte Beispiel
Grüße
Lorenz
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Objekt in VBA einbinden: Schritt-für-Schritt-Anleitung


Schritt-für-Schritt-Anleitung

  1. Microsoft Visual Basic für Applikationen öffnen: Starte Excel und öffne den VBA-Editor, indem du Alt + F11 drückst.

  2. Verweise aktivieren: Gehe zum Menü Extras und wähle Verweise. Suche nach der Bibliothek „Microsoft Office 14.0 Access Database Engine Object Library“ und setze ein Häkchen.

  3. VBA Bibliothek einbinden: Um die Bibliothek programmatisch einzubinden, kannst du die folgenden Subroutinen verwenden. Diese helfen dir, Verweise sowohl per GUID als auch per Datei hinzuzufügen.

Sub AddReferenceFromFile(strName As String)
    Dim blnRefExists As Boolean
    Dim ref As Reference
    For Each ref In Application.VBE.ActiveVBProject.References
        If ref.FullPath = strName Then
            blnRefExists = True
            MsgBox "Verweis auf """ & ref.Name & """ war schon gesetzt!"
            Exit For
        End If
    Next
    If Not blnRefExists Then
        On Error Resume Next
        Set ref = Application.VBE.ActiveVBProject.References.AddFromFile(strName)
        If Err.Number <> 0 Then
            MsgBox "Verweis auf """ & strName & """ konnte nicht erstellt werden!"
        Else
            MsgBox "Verweis auf """ & strName & """ wurde erstellt!"
        End If
    End If
End Sub

Häufige Fehler und Lösungen

  • Fehler: Benutzerdefinierter Typ nicht definiert: Dieser Fehler tritt auf, wenn der benötigte Verweis nicht gesetzt ist. Stelle sicher, dass die „Microsoft Office 14.0 Access Database Engine Object Library“ aktiviert ist.

  • Problem mit Sicherheitseinstellungen: Manchmal können die Sicherheitseinstellungen in Excel die Verwendung von VBA verweisen. Überprüfe die Einstellungen unter Datei > Optionen > Trust Center > Trust Center-Einstellungen.


Alternative Methoden

Eine alternative Methode zur Aktivierung von Verweisen ist die Nutzung von AddFromFile oder AddFromGuid, um Verweise dynamisch hinzuzufügen. Diese Methoden können nützlich sein, wenn du die Datei an verschiedenen Orten gespeichert hast oder wenn du verschiedene Versionen der Bibliothek verwendest.


Praktische Beispiele

Hier sind Beispiele für das Hinzufügen eines Verweises über die GUID und den Dateipfad:

Sub TestGuid()
    AddReferenceFromGuid "{632B6060-BBC6-11D2-A329-006097C4E476}", 1, 0  ' Windows Media Encoder
End Sub

Sub TestFile()
    AddReferenceFromFile "C:\Program Files (x86)\Windows Media Components\Encoder\wmenc.exe"  ' Windows Media Encoder
End Sub

Diese Subroutinen zeigen, wie du spezifische Bibliotheken zu deinem VBA-Projekt hinzufügen kannst.


Tipps für Profis

  • Halte deine VBA-Bibliotheken immer auf dem neuesten Stand, um Probleme mit Kompatibilität und Funktionalität zu vermeiden.
  • Nutze die ListReferences()-Subroutine, um alle aktiven Verweise aufzulisten und zu überprüfen, ob die benötigten Verweise korrekt gesetzt sind.
  • Dokumentiere deine Verweise, damit du bei zukünftigen Projekten schnell erkennen kannst, welche Bibliotheken benötigt werden.

FAQ: Häufige Fragen

1. Wie kann ich sicherstellen, dass der Verweis immer gesetzt ist?
Du kannst die oben genannten Subroutinen verwenden, um beim Öffnen der Datei automatisch die benötigten Verweise hinzuzufügen.

2. Wo finde ich die „Microsoft Office 14.0 Object Library“?
Diese Bibliothek ist typischerweise unter den Verweisen in den Excel-Extras zu finden. Stelle sicher, dass die richtige Version von Microsoft Office installiert ist.

3. Was mache ich, wenn ich einen Compilerfehler erhalte?
Überprüfe, ob alle benötigten Verweise aktiviert sind und dass du die richtige Version von Excel verwendest. Manchmal hilft es auch, den VBA-Editor neu zu starten.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige