Live-Forum - Die aktuellen Beiträge
Datum
Titel
16.10.2025 17:40:39
16.10.2025 17:25:38
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: VBA, Extras -> Verweise automatisch setzen

VBA, Extras -> Verweise automatisch setzen
30.06.2005 14:56:10
gerhard
Hallo, eine Frage an die Experten....

Sub test()
Dim vb as VBProject
End Sub

Dieses simple Programmm in einer vorhandene Arbeitsmappe eingebracht, wirft einen Compilerfehler, weil das entsprechende Kontrollkästchen "Microsoft Visual Basic for Application Extensibility " unter EXTRAS -> Verweis des VBE Editors nicht angeclickt ist. Sobald der Verweis manuell gesetzt wird, verschwindet der Compiler-Fehler.
Ich möchte nun vermeiden, dass für eine grosse Anzahl von Mappen auf unterschiedlichen PCs dieser Verweis manuell angeclickt wird.
Gibt es eine Möglichkeit, den Verweis auf die Bibliothek automatisch mit VBA oder ähnlichem zu setzen ?
Wäre für einen Tip dankbar...
viele Grüsse
Gerhard
Anzeige

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA, Extras -> Verweise automatisch setzen
30.06.2005 15:45:14
harry
hi,
hatte das problem auch. aber die sicherheitseinstellungen sind per code nicht änderbar. du kannst nur mit einer error-anweisung eine msgbox anzeigen lassen, die dem user sagt, was er wo zu aktivieren hat:
On Error GoTo ERRORHANDLER
.....
ERRORHANDLER:
If Error = Error(1004) Then
MsgBox Title:="Systemfehler", Prompt:="Die Sicherheitseinstellungen in EXCEL verhindern das Ausführen des Programms! Extras-Otionen-Sicherheit-Makrosicherheit Register Vertrauenswürdige Quellen-Zugriff auf Visual Basic-Projekt aktivieren. Danach das Programm neu starten."
End If
liebe grüße,
harry
Anzeige
AW: VBA, Extras -> Verweise automatisch setzen
30.06.2005 16:00:33
gerhard
hallo harry,
ich habe noch einmal kontrolliert jetzt. Bei Makrosicherheit ist das Kontrollkästchen "Zugriff auf Visual Basic Projekt vertrauen " aktiviert. "Alle installierten Add-inns vertrauen" ist ebenfalls aktiviert. Trotzdem verschwindet die Fehlermeldung nicht.
Es muss also noch was anderes geben.
gruss
gerhard
Anzeige
SCHAAANDEEEE!
30.06.2005 16:07:10
harry
sorry, heute ist nicht mein bester tag! hab mich da komnplett verlesen.
check diese anweisungen mal durch, bin mir (heute aber nur fast) sicher, es ist etwas für dich dabei.
For i = 1 To Application.VBE.ActiveVBProject.References.Count
On Error Resume Next
Set VBEObj = Application.VBE.ActiveVBProject.References
VBEObj.Remove VBEObj(i)
Next i
On Error Resume Next
Set VBEObj = Application.VBE.ActiveVBProject.References. _
AddFromGuid("{000204EF-0000-0000-C000-000000000046}", 4, 0)
On Error Resume Next
Set VBEObj = Application.VBE.ActiveVBProject.References. _
AddFromGuid("{00020813-0000-0000-C000-000000000046}", 1, 4)
On Error Resume Next
Set VBEObj = Application.VBE.ActiveVBProject.References. _
AddFromGuid("{00020430-0000-0000-C000-000000000046}", 2, 0)
On Error Resume Next
Set VBEObj = Application.VBE.ActiveVBProject.References. _
AddFromGuid("{2DF8D04C-5BFA-101B-BDE5-00AA0044DE52}", 2, 2)
On Error Resume Next
Set VBEObj = Application.VBE.ActiveVBProject.References. _
AddFromGuid("{0D452EE1-E08F-101A-852E-02608C4D0BB4}", 2, 0)
On Error Resume Next
Set VBEObj = Application.VBE.ActiveVBProject.References. _
AddFromGuid("{00020905-0000-0000-C000-000000000046}", 8, 2)
On Error Resume Next
Set VBEObj = Application.VBE.ActiveVBProject.References. _
AddFromGuid("{0002E157-0000-0000-C000-000000000046}", 5, 3)
Set VBEObj = Nothing
liebe grüße,
harry
Anzeige
AW: VBA, Extras -> Verweise automatisch setzen
30.06.2005 16:49:41
bst
Auch Hallo,
setze die Verweise vielleicht erstmal per Hand und schau Dir dann an welche Parameter Du für AddFromGuid oder AddFromFile brauchst.
cu, Bernd
--
Option Explicit

Public Sub ListReferencesInProject()
   Dim oRefs As Object ' References
   Dim oRef As Object ' Reference
   Dim i As Long
   
   Set oRefs = ActiveWorkbook.VBProject.References
   
   Range("A1") = "Bezeichnung"
   Range("B1") = "Name"
   Range("C1") = "Pfad"
   Range("D1") = "GUID"
   Range("E1") = "Major"
   Range("F1") = "Minor"
   Range("G1") = "Standard-Verweis"
   Range("A1:G1").Font.Bold = True
   
   i = 1
   For Each oRef In oRefs
      i = i + 1
      Cells(i, 1) = oRef.Description
      Cells(i, 2) = oRef.Name
      Cells(i, 3) = oRef.FullPath
      Cells(i, 4) = oRef.GUID
      Cells(i, 5) = oRef.Major
      Cells(i, 6) = oRef.minor
      Cells(i, 7) = oRef.BuiltIn
   Next
   Range("A1:G1").EntireColumn.AutoFit
   Set oRefs = Nothing
End Sub

Anzeige
AW: VBA, Extras -> Verweise automatisch setzen
30.06.2005 17:18:54
gerhard
danke für eure nette Hilfbereitschaft...
ich kann jedoch erst morgen an dem Thema weitermachen.
grüsse
gerhard
AW: VBA, Extras -> Verweise automatisch setzen
01.07.2005 13:08:13
gerhard
hallo ....
ich habe eurem Beispiel-Code angeschaut und ein bischen mit dem Debugger die aktuellen Werte im Projekt mir anzeigen lassen. Bei Durchsehen eures Codes ist mir jedoch eine ganz einfache Lösung für mein Problem aufgefallen
1. Dieses Testprogramm kompiliert nicht, wenn das Kontrollkästchen für Visual Basic Extensibilty nicht gesetzt ist

Sub test()
Dim vb as VBProject
End Sub

2. Diese Programm übersetzt erfolgreich und wird richtig ausgeführt, auch wenn das Kontrollkästchen nicht aktiviert ist

Sub test()
Dim vb as object
End Sub

Also ändere ich die Deklarierung von vb entsprechend um in object und schon funktioniert es.
Der Nachteil besteht jetzt darin, dass das Eintippen von Code und die Fehlersuche bei mir erschwert wird, da der Editor die Methoden und Eigenschaften von VBProject bei der Eingabe nicht unterstützt. Die Syntaxprüfung während der Eingabe ist dann weniger scharf. Bei Freigabe tritt der Fehler nicht mehr auf.
Ist vielleicht für einen Experten trivial, meine Erfahrung ist jedoch noch nicht so gut, um solche Probleme leicht beantworten zu können.
noch mal recht herzlichen Dank für eure Hilfe...
grüsse gerhard
Anzeige
AW: VBA, Extras -> Verweise automatisch setzen
02.07.2005 09:15:39
Nepumuk
Hi,
was hindert dich daran, den Verweis zu setzen, dein Makro mit den entsprechenden Variablen zu schreiben und wenn's funktioniert, den Verweis wieder zu entfernen und die Variablen als Objekte zu deklarieren. Ich mach das so, ist sehr bequem.
Gruß
Nepumuk
;
Anzeige
Anzeige

Infobox / Tutorial

VBA Verweise automatisch setzen in Excel


Schritt-für-Schritt-Anleitung

Um die Excel VBA Verweise automatisch zu aktivieren, kannst du den folgenden VBA-Code verwenden. Dieser Code entfernt alle bestehenden Verweise und fügt dann die benötigten Verweise wieder hinzu.

Sub SetReferences()
    Dim VBEObj As Object
    On Error Resume Next

    ' Entferne alle bestehenden Verweise
    For i = 1 To Application.VBE.ActiveVBProject.References.Count
        Set VBEObj = Application.VBE.ActiveVBProject.References
        VBEObj.Remove VBEObj(i)
    Next i

    ' Füge benötigte Verweise hinzu
    On Error Resume Next
    Application.VBE.ActiveVBProject.References.AddFromGuid "{000204EF-0000-0000-C000-000000000046}", 4, 0 ' VBA Extensibility
    Application.VBE.ActiveVBProject.References.AddFromGuid "{00020813-0000-0000-C000-000000000046}", 1, 4 ' Excel
    ' Weitere Verweise können hier hinzugefügt werden...

    Set VBEObj = Nothing
End Sub

Dieser Code kann in das VBA-Modul deiner Excel-Datei eingefügt werden. Achte darauf, dass du die VBA Bibliothek mit den benötigten GUIDs anpasst.


Häufige Fehler und Lösungen

  • Problem: Excel VBA Verweise ausgegraut

    • Lösung: Stelle sicher, dass die Makrosicherheitseinstellungen korrekt sind. Gehe zu Extras > Optionen > Sicherheit > Makrosicherheit und aktiviere die entsprechenden Optionen.
  • Problem: Fehlermeldung beim Kompilieren

    • Lösung: Überprüfe, ob das Kontrollkästchen für "Zugriff auf das Visual Basic-Projekt vertrauen" aktiviert ist.

Alternative Methoden

Wenn du die Excel Extras nicht ändern kannst, versuche, den Verweis manuell zu setzen und den Code anschließend zu optimieren, indem du die Variablen als Objekte deklarierst. So kannst du die Vorteile der IntelliSense-Funktion im VBA-Editor nutzen.

Sub Test()
    Dim vb As Object ' Anstelle von VBProject
End Sub

Diese Methode erlaubt es dir, den Code ohne die Notwendigkeit eines aktiven Verweises auszuführen.


Praktische Beispiele

Ein einfaches Beispiel zur Verwendung von Verweisen könnte so aussehen:

Sub ListReferencesInProject()
    Dim oRefs As Object
    Dim oRef As Object
    Dim i As Long

    Set oRefs = ActiveWorkbook.VBProject.References
    For Each oRef In oRefs
        Debug.Print oRef.Description, oRef.Name, oRef.FullPath
    Next oRef
End Sub

Dieser Code listet alle derzeit aktiven Verweise in deinem Projekt auf und gibt sie im Direktfenster aus.


Tipps für Profis

  • Halte regelmäßig deine VBA Bibliothek auf dem neuesten Stand, um sicherzustellen, dass alle benötigten Verweise aktiviert sind.
  • Verwende die Option On Error Resume Next mit Bedacht, um Fehler zu handhaben, ohne den Code zu unterbrechen.
  • Teste deinen Code in einer sicheren Umgebung, bevor du ihn auf produktive Daten anwendest.

FAQ: Häufige Fragen

1. Wie kann ich die Verweise in Excel VBA aktivieren?
Du kannst die Verweise manuell in Extras > Verweise aktivieren oder den oben genannten VBA-Code verwenden, um sie automatisch zu setzen.

2. Was tun, wenn die Verweise ausgegraut sind?
Überprüfe die Makrosicherheitseinstellungen in Excel und stelle sicher, dass der Zugriff auf das Visual Basic-Projekt aktiviert ist.

3. Welche Verweise sind für Excel VBA wichtig?
Zu den wichtigsten Verweisen gehören die Microsoft Excel Object Library und die Microsoft Visual Basic for Applications Extensibility.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige