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

VBProject.VBComponents.Add ?!?

Forumthread: VBProject.VBComponents.Add ?!?

VBProject.VBComponents.Add ?!?
09.02.2004 13:19:41
Russi
Hallo Ihr Spezialisten!
Ich brauche Eure Hilfe bei einer ganz speziellen Frage:
Ich füge per VBA Makrocode in eine neue Arbeitsmappe ein. Beispiele dafür gibts im Netz wie Sand am Meer, aber bei mir funktioniert das leider nicht.
Der Text "vbext_ct_StdModule" wird nicht erkannt und ich weiß nicht, was ich da tun muss. Die Fehlermeldung lautet "Variable nicht definiert".
Kann mir vielleicht jemand von Euch sagen, woran das liegt?!?
Vielen Dank im voraus!
Viele Grüße
Russi
With Workbooks(1)
.VBProject.VBComponents.Add (vbext_ct_StdModule)
With .VBProject
With .VBComponents(.VBComponents.Count).CodeModule
.AddFromString StrMakroText
End With
End With
End With
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBProject.VBComponents.Add ?!?
09.02.2004 13:24:44
xXx
Hallo,
ich vermute mal, dass das dein Prob behebt:
.VBProject.VBComponents.Add ("vbext_ct_StdModule")
Ohne" wird vbext... als Variablenname interpretiert.
Gruß aus'm Pott
Udo
http://www.excelerator.de

P.S. Das Forum lebt auch von den Rückmeldungen an die Antworter!
Anzeige
Funzt!
09.02.2004 13:28:25
Russi
Hallo Udo!
Ja, das tut es! Ich bin begeistert!
(und erstaunt, an welch einfachen Dingen ich manchmal scheitere...)
Aber nur nebenbei: In allen Beispielen, die ich im Netz gefunden habe, war dieser Eintrag ohne Anführungszeichen und ohne Klammern angegeben. Und überall scheint es auch so funktioniert zu haben. Aber egal, jetzt gehts ja!
Vielen Dank!!!
Russi
Anzeige
;
Anzeige

Infobox / Tutorial

VBProject.VBComponents.Add richtig nutzen


Schritt-für-Schritt-Anleitung

Um ein neues Modul in eine Arbeitsmappe über VBA hinzuzufügen, verwende den folgenden Code:

With Workbooks(1)
    .VBProject.VBComponents.Add vbext_ct_StdModule
    With .VBProject
        With .VBComponents(.VBComponents.Count).CodeModule
            .AddFromString StrMakroText
        End With
    End With
End With

Achte darauf, dass du vbext_ct_StdModule ohne Anführungszeichen nutzt. Wenn du es in Anführungszeichen setzt, wird es als Variablenname interpretiert, was zu einer Fehlermeldung führen kann.


Häufige Fehler und Lösungen

  1. Fehlermeldung: "Variable nicht definiert"

    • Ursache: vbext_ct_StdModule ist nicht richtig deklariert.
    • Lösung: Stelle sicher, dass du vbext_ct_StdModule ohne Anführungszeichen verwendest.
  2. VBA-Projekt nicht sichtbar

    • Ursache: Die Sicherheitseinstellungen in Excel verhindern den Zugriff auf das VBA-Projekt.
    • Lösung: Gehe zu den Excel-Optionen und aktiviere die Makros und den Zugriff auf das VBA-Projekt.

Alternative Methoden

Falls du Schwierigkeiten mit VBComponents.Add hast, kannst du auch die ThisWorkbook.VBProject.VBComponents-Eigenschaft verwenden, um auf die Komponenten zuzugreifen. Beispiel:

ThisWorkbook.VBProject.VBComponents.Add vbext_ct_StdModule

Diese Methode hat denselben Effekt, aber direkt über ThisWorkbook kann es manchmal einfacher sein.


Praktische Beispiele

Hier sind einige Beispiele, wie du VBComponents in verschiedenen Szenarien verwenden kannst:

  1. Einfügen eines Moduls mit Code:
Dim StrMakroText As String
StrMakroText = "Sub MeinMakro()" & vbCrLf & "    MsgBox 'Hallo Welt!'" & vbCrLf & "End Sub"

With ThisWorkbook.VBProject.VBComponents.Add vbext_ct_StdModule
    .CodeModule.AddFromString StrMakroText
End With
  1. Anzeigen aller Module in einem Projekt:
Dim VBComp As VBComponent
For Each VBComp In ThisWorkbook.VBProject.VBComponents
    Debug.Print VBComp.Name
Next VBComp

Tipps für Profis

  • Verwende die VBA-Referenz: In der VBA-Entwicklungsumgebung kannst du die F1-Taste drücken, um die Dokumentation für VBProject und VBComponents zu öffnen.
  • Sicherheitsoptionen anpassen: Stelle sicher, dass du die Sicherheitseinstellungen anpasst, um auf VBA-Projekte zugreifen zu können. Dies kann unter "Datei" > "Optionen" > "Trust Center" > "Trust Center-Einstellungen" erfolgen.
  • Verwaltung von Fehlern: Füge Fehlerbehandlungsroutinen in deinen Code ein, um mögliche Probleme während der Ausführung zu identifizieren.

FAQ: Häufige Fragen

1. Warum funktioniert mein Code nicht, obwohl ich vbext_ct_StdModule richtig verwendet habe?
Überprüfe, ob die Sicherheitseinstellungen in Excel den Zugriff auf das VBA-Projekt erlauben. Manchmal können restriktive Einstellungen den Code blockieren.

2. Wo finde ich weitere Informationen zu VBComponents?
Die offizielle Microsoft-Dokumentation bietet umfassende Informationen zu den verschiedenen VBComponents und deren Verwendung in VBA-Projekten.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige