行頭の#の数に応じて見出しを設定

Pocket

Markdown記法というものがあります。

You Look Too Cool » Markdown記法

その中に「#見出し1」のように行頭に「#」を付けた行は見出しとする、という記法があります。
「#」の数に応じて見出しのレベルが変わります。
このようにMarkdown記法に従って見出しを付けた文章に対してWord上の見出しをセットするというマクロを作ってみました。

Sub 見出し設定()
    Set ps = ActiveDocument.Paragraphs
    For x = 1 To ps.Count
        a = ps(x)
        If Left(a, 1) = "#" Then
            For i = 6 To 1 Step -1
                If Left(a, i) = String(i, "#") Then
                    ps(x).Range.Text = Right(a, Len(a) - i)
                    ps(x).Range.Style = ActiveDocument.Styles("見出し " & i)
                    Exit For
                End If
            Next i
        End If
    Next x
End Sub

このような処理は、普通は置換を使うことで簡単にできるのですが、Wordの検索・置換では「行頭」を認識する方法がありません。
そこでマクロを使い、1行ごとに処理を行っています。
行頭に「#」があれば、それが6個あるケースから1個あるケースまで順に処理します。行頭の「#」を削除し、個数に応じて見出しをセットします。

[ 2010年9月25日 | カテゴリー: Word | タグ: , ]

« | »

コメント

  1. 影本賢治 より:

    お世話になっております。
    私は、VBAアセットというサイトを開設しています。
    「アウトライン設定」というマクロを作成し、その機能などを紹介するにあたって、この記事を参考にさせていただきました。
    https://vba-assets.net/outline/
    すばらしいアイデアを公表していただき、大変ありがとうございます。
    今後とも、よろしくお願いいたします。

  2. stabucky より:

    影本さん
    お役に立てたのであれば嬉しいです。
    また機会があればよろしくお願いします。

  3. […] 行頭の#の数に応じて見出し&#1… […]

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

送信してください。


タグ

カテゴリー

最近の投稿

最近のコメント

固定ページ

アーカイブ

stabucky

写真

メタ情報