Home » ワードマクロ・Word VBAの使い方 » 段落・パラグラフ » アウトラインレベル2の段落にH2タグを追加するWordマクロ

アウトラインレベル2の段落にH2タグを追加するWordマクロ

対象:Word 2010, Word 2013, Windows版Word 2016

このサイト「インストラクターのネタ帳」の記事を、Wordをアウトライナーとして使って書くことが、時折あります。

Word上でシェイクを繰り返し、考えながら記事を書き、最終的にMovable Typeにポストします。

[スポンサードリンク]

その際、インストラクターのネタ帳の記事では、アウトラインレベル2の段落にだけ、HTMLのH2タグを挿入する必要があります。

そのためのWordマクロを作りました。

アウトラインレベル2の段落にH2タグを追加するサンプルマクロ

以下のSubプロシージャを実行すると、アクティブな文書の、アウトラインレベル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タグを追加しています。

[スポンサードリンク]

Home » ワードマクロ・Word VBAの使い方 » 段落・パラグラフ » アウトラインレベル2の段落にH2タグを追加するWordマクロ

「段落・パラグラフ」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.