#Excel: #Text mit #VBA #fett #formatieren – aber nur #zumTeil

Sie wollen bestimmte Teile Ihrer Zellen in #Excel #fett #formatieren? Per #VBA?

Das Beispiel hier sollte Ihnen dabei gut helfen: es macht den ganzen Text innerhalb der mit eckigen Klammern gekennzeichneten Bereiche fett und entfernt die Klammern auch gleich.

Sub Brackets_Bold()
Dim myCell As Range
Dim myTxt As Variant
Dim myLen As Long
Dim StartPos As Long
Dim EndPos As Long

    For Each myCell In ActiveWorkbook.ActiveSheet.UsedRange.Cells
        EndPos = 1
        StartPos = InStr(EndPos, myCell.Text, "[")
        While StartPos <> 0
            If Left(myCell.Formula, 1) <> "=" Then
                myCell.Characters(Start:=StartPos, Length:=1).Delete
                EndPos = InStr(StartPos, myCell.Text, "]")
                StartPos = StartPos
                If EndPos = 0 Then
                    EndPos = Len(myCell.txt)
                Else
                    myCell.Characters(Start:=EndPos, Length:=1).Delete
                    EndPos = EndPos - 1
                End If
                With myCell.Characters(Start:=StartPos, Length:=EndPos - StartPos + 1).Font
                    .Bold = True
                End With
   
                StartPos = InStr(EndPos + 1, myCell.Text, "[")
            Else
                StartPos = 0
            End If
        Wend
    Next myCell
End Sub
Anwendungsfall? Sie generieren einen Haufen Informationen mit Formeln, kennzeichnen das, was fett werden soll, mit Klammern, kopieren dann das Ergebnis für den endgültigen Bericht in ein neues Blatt und lassen das Makro drüberlaufen.
Die Aussicht auf morgen: eine Lösung für den Fall, dass Sie Zellen mit einer Textlänge über 255 Zeichen haben. Da weigert sich nämlich die .Delete-Methode.