選択範囲の各行の先頭スペースを削除

' 選択範囲の各段落の先頭にある空白(全角、半角)またはタブを削除
Sub prcRemoveLeadingSpaces()
    Dim rngParagraph As Paragraph
    Dim strText As String
    Dim intPos As Integer

    ' 選択範囲が空かどうか確認
    If Selection.Range.Start = Selection.Range.End Then
        MsgBox "テキストが選択されていません。", vbExclamation
        Exit Sub
    End If

    ' 選択範囲内の各段落に対して処理を行う
    For Each rngParagraph In Selection.Paragraphs
        strText = rngParagraph.Range.Text
        intPos = 1

        ' 先頭の空白またはタブを削除
        Do While intPos <= Len(strText)
            If Mid(strText, intPos, 1) = " " Or _
               Mid(strText, intPos, 1) = ChrW(&H3000) Or _
               Mid(strText, intPos, 1) = vbTab Then
                intPos = intPos + 1
            Else
                Exit Do
            End If
        Loop

        If intPos > 1 Then
            rngParagraph.Range.Text = Mid(strText, intPos)
        End If
    Next rngParagraph
End Sub

コメント