Thema Datum  Von Nutzer Rating
Antwort
05.09.2026 13:15:52 Diana
NotSolved
06.09.2026 19:07:16 Gast01
NotSolved
06.09.2026 19:39:14 Diana
NotSolved
07.09.2026 17:36:08 Gast78040
NotSolved
07.09.2026 18:19:48 xlKing
NotSolved
10.09.2026 11:40:17 Diana
NotSolved
Rot VBA Editor Problem: Tabs & Spalten
11.09.2026 00:36:31 xlKing
NotSolved
11.09.2026 00:38:14 xlKing
NotSolved

Ansicht des Beitrags:
Von:
xlKing
Datum:
11.09.2026 00:36:31
Views:
48
Rating: Antwort:
  Ja
Thema:
VBA Editor Problem: Tabs & Spalten

Guten Abend Diana,

Keine Ahnung ob du hier nochmal reinschaust. Aber man kann natürlich auch mit Kanonen auf Spatzen schießen. Sprich, sich den VBA-Editor entsprechend umgestalten. Ich habe dir vor einem halben Jahr gezeigt, wie du Buttons in einer Symbolleiste anlegen kannst. Das kannst du natürlich auch mit einer Eingabebox und einem Button tun.

In ein allgemeines Modul:

Dim cbbtnColl As New Collection

Sub ButtonAnlegen()
    
 'nur einmalig ausführen!
    
 With VBE.CommandBars("Voreinstellung").Controls.Add(msoControlComboBox)
   .Caption = "Tabstops"
   .Text = "8,30,64"
 End With
 
 
    
 Set cbbtn = VBE.CommandBars("Voreinstellung").Controls.Add(msoControlButton)
 With cbbtn
   .FaceId = 7
   .Caption = "FormatTabs"
   .TooltipText = "Formatiert den markierten Code im aktuellen Fenster gemäß den in der Editbox links angegebenen TabStops"
 End With
    
 End Sub
  
 Sub ButtonEventsAnlegen()
    
   'sollte über Document_Open gestartet werden.
    
   Dim cbbtnevt As clsCommandBarButton, i As Long
    
   For i = 1 To 1
     cbbtnColl.Add New clsCommandBarButton
     Set cbbtnevt = cbbtnColl(cbbtnColl.Count)
     Set cbbtnevt.CommandBarButton = VBE.CommandBars("Voreinstellung").Controls("FormatTabs")
   Next i
    
 End Sub
  
 Public Sub FormatTextByTabstops()
    
   Dim zeile As Long, spalte As Long, zeile2 As Long, spalte2 As Long
   VBE.ActiveCodePane.GetSelection zeile, spalte, zeile2, spalte2
   Text = VBE.ActiveCodePane.CodeModule.Lines(zeile, zeile2 - zeile + 1)
    
   arr = Split(Text, Chr(10))
   tbsarr = Split(VBE.CommandBars("Voreinstellung").Controls("Tabstops").Text, ",")
   
   
   For a = LBound(arr) To UBound(arr)
     arr2 = Split(arr(a), ": ")
       l = 0: x = 0
     For i = LBound(arr2) To UBound(arr2)
       arr2(i) = Trim(arr2(i))
       If x <= UBound(tbsarr) Then arr2(i) = String(CLng(tbsarr(x)) - l - 1, " ") & arr2(i)
       l = l + Len(arr2(i)) + 2
       If x < UBound(tbsarr) Then
         Do While l + 2 > CLng(tbsarr(x))
           x = x + 1
         Loop
       Else
         x = x + 1
       End If
     Next i
     arr(a) = Join(arr2, ": ")
     'MsgBox c
   Next a
    
   Text = Join(arr, Chr(10))
    
   VBE.ActiveCodePane.CodeModule.DeleteLines zeile, zeile2 - zeile + 1
   VBE.ActiveCodePane.CodeModule.InsertLines zeile, Text
    
   Application.OnTime Now, "NochAktiv"
    
 End Sub
 Sub NochAktiv()
   If cbbtnColl.Count = 0 Then ButtonEventsAnlegen
 End Sub

In ein Klassenmodul mit dem Namen: 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 "FormatTabs"
     FormatTextByTabstops
   End Select
End Sub

Führe einmalig die Sub ButtonAnlegen mit F5 aus. Du erhältst in der Symbolleiste eine Combobox (eine reine Textbox war bei mir leider nicht möglich) und einen Button. Schließe Word und öffne es wieder, oder führe alternativ einmalig die Sub ButtonEventsAnlegen mit F5 aus.

Füge nun deinen aus dem Notepad kopierten Code in ein weiteres allgemeines Modul eines beliebigen Documents ein. Markiere die zu formatierenden Zeilen und drücke auf den Button. Es werden, gemäß der in der Combobox festgelegten Tabstops, entsprechend viele Leerzeichen eingefügt. Mit deinem Beispieltext aus der Eröffnungsfrage dieses Threads klappt das prima.

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
05.09.2026 13:15:52 Diana
NotSolved
06.09.2026 19:07:16 Gast01
NotSolved
06.09.2026 19:39:14 Diana
NotSolved
07.09.2026 17:36:08 Gast78040
NotSolved
07.09.2026 18:19:48 xlKing
NotSolved
10.09.2026 11:40:17 Diana
NotSolved
Rot VBA Editor Problem: Tabs & Spalten
11.09.2026 00:36:31 xlKing
NotSolved
11.09.2026 00:38:14 xlKing
NotSolved