サンプルコードでできること
選択した段落の段落番号の後にタブを挿入します(処理対象は自動番号ではなく、テキストの番号)。スペースが挿入されている場合は削除して、代わりにタブを挿入します。
下記の番号の種類を段落番号と判定しています。
(数字のみは段落番号と判定。aのみは段落番号と判定しない。)
1、1.、1)、(1)、[1]、a.、a)
Sub 段落番号の後にタブ挿入() 数字の後に挿入 vbTab 英字の後に挿入 vbTab 括弧数字の後に挿入 vbTab End Sub Private Sub 数字の後に挿入(str As String) Const strFirst As String = "[))0-9..]" Dim i As Long, rngSel As Range Dim para As Paragraph Set rngSel = Selection.Range For Each para In Selection.Paragraphs With para.Range If IsNumeric(.Characters(1).Text) = False _ Then GoTo Continue i = 2 Do While .Characters(i).Text Like strFirst i = i + 1 Loop Do While .Characters(i).Text = " " _ Or .Characters(i).Text = " " _ Or .Characters(i).Text = vbTab .Characters(i).Text = "" Loop .Characters(i - 1).InsertAfter str End With Continue: Next End Sub Private Sub 英字の後に挿入(str As String) Const strAlpha As String = "[a-z]" Const strKigo As String = "[..))]" Dim i As Long, rngSel As Range Dim blKigo As Boolean Dim para As Paragraph Set rngSel = Selection.Range For Each para In Selection.Paragraphs blKigo = False With para.Range If Not (.Characters(1).Text Like strAlpha) _ Then GoTo Continue i = 2 If .Characters(i).Text Like strAlpha Then Do While .Characters(i).Text Like strAlpha i = i + 1 Loop Do While .Characters(i).Text Like strKigo i = i + 1 blKigo = True Loop ElseIf .Characters(i).Text Like strKigo Then Do While .Characters(i).Text Like strKigo i = i + 1 blKigo = True Loop End If If blKigo = True Then Do While .Characters(i).Text = " " _ Or .Characters(i).Text = " " _ Or .Characters(i).Text = vbTab .Characters(i).Text = "" Loop .Characters(i - 1).InsertAfter str End If End With Continue: Next End Sub Private Sub 括弧数字の後に挿入(str As String) Const strNum As String = "[0-9]" Dim i As Long, rngSel As Range Dim para As Paragraph Set rngSel = Selection.Range For Each para In Selection.Paragraphs i = 1 With para.Range If .Characters(i).Text <> "(" And _ .Characters(i).Text <> "[" Then GoTo Continue i = i + 1 Do While .Characters(i).Text Like strNum i = i + 1 Loop If .Characters(i).Text <> ")" And _ .Characters(i).Text <> "]" Then GoTo Continue i = i + 1 Do While .Characters(i).Text = " " _ Or .Characters(i).Text = " " _ Or .Characters(i).Text = vbTab .Characters(i).Text = "" Loop .Characters(i - 1).InsertAfter str End With Continue: Next End Sub
コードの説明
数字後に挿入 vbTab
vbTabを" "や" "に変えると、段落番号の後に半角や全角スペースを挿入できます。