Wordでマクロを使って1文字下げる

文章を書くときには各段落の書き始めを1文字分下げるのですが、これがなかなか面倒。
Wordならば「字下げ」を使えばよいのですが一つ問題があります。
一般的に括弧(「)で始まるときは下げません(角川文庫だけは下げるようですが)。しかしWordの「字下げ」ではこれも下げてしまいます。
このように通常は1文字下げるけれども括弧のときは下げないようにするためのマクロです。

Sub 自動インデント()
    Dim i As Long
    Dim fsnormal As Single, fsfirst As Single
    '標準のフォントサイズを取得
    fsnormal = ActiveDocument.Styles(wdStyleNormal).Font.Size
    'すべての段落について処理
    For i = 1 To ActiveDocument.Paragraphs.Count
        '最初の文字が"「"のときは字下げしない
        'これ以外は標準のフォントサイズ分、字下げ
        If ActiveDocument.Paragraphs(i).Range.Characters(1) = "「" Then
            fsfirst = 0
        Else
            fsfirst = fsnormal
        End If
        ActiveDocument.Paragraphs(i).Range.Select
        With Selection.ParagraphFormat
            .LeftIndent = 0
            .FirstLineIndent = fsfirst
        End With
    Next i
End Sub

コメント

タイトルとURLをコピーしました