このサイト「インストラクターのネタ帳」の記事を、Wordをアウトライナーとして使って書くことが、時折あります。
Word上でシェイクを繰り返し、考えながら記事を書き、最終的にMovable Typeにポストします。
その際、インストラクターのネタ帳の記事では、アウトラインレベル2の段落にだけ、HTMLのH2タグを挿入する必要があります。
そのためのWordマクロを作りました。
アウトラインレベル2の段落にH2タグを追加するサンプルマクロ
以下のSubプロシージャを実行すると、アクティブな文書の、アウトラインレベル2の段落の文字列が、H2タグで括られます。
Dim par As Paragraph For Each par In ActiveDocument.Paragraphs
With par
If .OutlineLevel = wdOutlineLevel2 Then
With .Range
.End = .End - 1 ' 段落記号の除外
.Text = "<h2>" & .Text & "</h2>"
End With
End If
End With
Next par
End Sub
サンプルマクロの解説
アクティブ文書の全段落に、For Each~Nextループを回して、
Dim par As Paragraph
For Each par In ActiveDocument.Paragraphs
アウトラインレベルが2の段落にだけ処理を行います。
With par
If .OutlineLevel = wdOutlineLevel2 Then
実際の処理としては、アウトラインレベル2の段落の前に「<h2>」、後ろに「</h2>」を追加すればいいのですけれど、取得したRangeオブジェクトのTextプロパティに単純にH2タグを追加しようとすると、後ろの「</h2>」が、段落記号の後ろについてしまい、アウトラインレベルが後の段落と同じに変更されてしまいます。
これを避けるために、
With .Range
.End = .End - 1
と、Rangeの最後の位置を「- 1」することで、Rangeオブジェクトを、段落記号を除外した状態にしておいてから、
.Text = "<h2>" & .Text & "</h2>"
H2タグを追加しています。
- Newer:Excelマクロ入門書籍をたくさん見て驚いた
- Older:入門者のExcel VBA学習項目は3つに分類できる
Home » ワードマクロ・Word VBAの使い方 » 段落・パラグラフ » アウトラインレベル2の段落にH2タグを追加するWordマクロ