Thema Datum  Von Nutzer Rating
Antwort
06.03.2026 21:11:44 Diana
NotSolved
07.03.2026 09:51:26 Gast72430
NotSolved
07.03.2026 12:38:01 Gast18893
NotSolved
07.03.2026 13:38:30 Diana
NotSolved
Rot VB Editor Toolbar Button not executing
08.03.2026 01:29:28 xlKing
Solved
08.03.2026 01:44:05 xlKing
NotSolved
09.03.2026 00:44:16 xlKing
Solved
09.03.2026 19:29:28 Gast10955
NotSolved
09.03.2026 23:38:29 xlKing
NotSolved
10.03.2026 10:16:13 Gast72430
NotSolved

Ansicht des Beitrags:
Von:
xlKing
Datum:
08.03.2026 01:29:28
Views:
40
Rating: Antwort:
 Nein
Thema:
VB Editor Toolbar Button not executing

Hallo Diana,

klar, kann nicht funkionieren. Du rufst momentan in beiden Fällen mit New ein neues clsCommandBarButton-Objekt auf. Soweit so richtig, aber in diesem Objekt hast du dem Click-Ereignis "nur" die Msgbox hinterlegt. Außerdem überschreibst du clsBT mal mit der Methode für die MsgBox und mal mit der für den Text. Ja, was denn nun? Außerdem (und da kannst du nix dafür) wird das Projekt bei bestimmten Codeänderungen zurückgesetzt und alle Variablen verlieren dabei ihren Wert. Also musst du für die mehrfache Verwendung die Event-Verknüpfung neu setzen.

Wenn du mehrere Buttons willst, brauchst du also verschiedene Variablen, da jedes clsCommandbarbutton-Objekt ein anderes ist. Bei 2 oder mehr Buttons empfielt es sich, diese in einem Collection-Objekt zu sammeln:

Leider kenne ich keine Möglichkeit, die Position der Einfügemarke auszulesen. Ein Selection-Objekt gibt es im Codefenster des VB-Editors nicht. Vielleicht kennt ja jemand eine API-Lösung? Auf die schnelle hab ich da nix gefunden. Du musst dich also entscheiden, wo du den Text einfügst und diesen dann von dort an die gewünschte Stelle im Modul kopieren. In meinem Beispiel wird der Text vor der letzten Zeile eingefügt.

in ein allgemeines Modul (Modul1)

Dim cbbtnColl As New Collection
 
 Sub ButtonAnlegen() 'ggf. nur Einmalig ausführen!
   
 Dim cbbtn As CommandBarButton
   
 Set cbbtn = VBE.CommandBars("Voreinstellung").Controls.Add(msoControlButton)
 With cbbtn
   .FaceId = 7
   .Caption = "WriteCode_1"
   .TooltipText = "Schreibt den Code ""abc"" in das aktuelle Modul"
 End With
   
 Set cbbtn = VBE.CommandBars("Voreinstellung").Controls.Add(msoControlButton)
 With cbbtn
   .FaceId = 122
   .Caption = "WriteCode_2"
   .TooltipText = "Schreibt den Code ""xyz"" in das aktuelle Modul"
 End With
   
 End Sub
 
 Sub ButtonEventsAnlegen()
   
   Dim cbbtnevt As clsCommandBarButton, i As Long
   
   For i = 1 To 2
     cbbtnColl.Add New clsCommandBarButton
     Set cbbtnevt = cbbtnColl(cbbtnColl.Count)
     Set cbbtnevt.CommandBarButton = VBE.CommandBars("Voreinstellung").Controls("WriteCode_" & i)
   Next i
   
 End Sub
 
 Sub WriteCode(Text As String)
   
   With VBE.ActiveCodePane.CodeModule
     .InsertLines .CountOfLines, Text
   End With
   
   Application.OnTime Now, "NochAktiv"
   
 End Sub
 Sub NochAktiv()
   If cbbtnColl.Count = 0 Then ButtonEventsAnlegen
 End Sub

in ein neues Klassenmodul (clsCommandBarButton)

Private WithEvents m_CommandBarButton As CommandBarButton
Public Property Set CommandBarButton(cbb As CommandBarButton)
     Set m_CommandBarButton = cbb
End Property
Public Property Get CommandBarButton() As CommandBarButton
     Set CommandBarButton = m_CommandBarButton
End Property
Private Sub m_CommandBarButton_Click(ByVal Ctrl As Office.CommandBarButton, CancelDefault As Boolean)
   Select Case Ctrl.Caption
   Case "WriteCode_1"
     WriteCode "'abc"
   Case "WriteCode_2"
     WriteCode "'xyz"
   End Select
End Sub

in das Modul ThisDocument

Private Sub Document_Open()
  ButtonAnlegen
  ButtonEventsAnlegen
End Sub

Gruß Mr. K.


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
06.03.2026 21:11:44 Diana
NotSolved
07.03.2026 09:51:26 Gast72430
NotSolved
07.03.2026 12:38:01 Gast18893
NotSolved
07.03.2026 13:38:30 Diana
NotSolved
Rot VB Editor Toolbar Button not executing
08.03.2026 01:29:28 xlKing
Solved
08.03.2026 01:44:05 xlKing
NotSolved
09.03.2026 00:44:16 xlKing
Solved
09.03.2026 19:29:28 Gast10955
NotSolved
09.03.2026 23:38:29 xlKing
NotSolved
10.03.2026 10:16:13 Gast72430
NotSolved