【Word VBA】文字列を選択範囲の前後に挿入するWordマクロ(その2)

以前紹介した「【コード】文字列を選択範囲の前後に挿入するWordマクロ 」の改良版です。

先日のWordマクロセミナーの参加者から、文字列の前後にタグを追加し、追加したタグを蛍光ペンで着色したいという要望をいただきました。

早速作ってみました。

このマクロでできること

選択した文字列の前後に指定したタグを挿入します。

サンプルコードでは、文字列の前に<b>を挿入し、文字列の後に</b>を挿入します。

そして挿入した文字列を明るい緑の蛍光ペンで着色します。

さらに、カーソル位置を後方に挿入した文字列の後ろに移動させます。

(実行前)

文字列挿入

(実行後)

文字列挿入

マクロの解説

挿入する文字列を6行目と7行目で指定します。

蛍光ペンでの着色箇所は少し煩雑です。

もう少しわかりやすい表記があるのかも知れませんが、ひとまず文書中で文字列を挿入した位置を特定して、その範囲を蛍光ペンで着色しています。(26行目~35行目)

マクロ


Sub 文字列を選択範囲の前後に挿入する2()

 Dim myDoc As Document
 Dim myRange As Range

 Const myText1 As String = "<b>" '前の文字列
 Const myText2 As String = "</b>" '後の文字列

 '-------------------------------------------
 '前処理
 '-------------------------------------------
 Set myDoc = ActiveDocument

 '-------------------------------------------
 '文字列の挿入
 '-------------------------------------------
 With Selection
  .InsertBefore myText1
  .InsertAfter myText2
 End With

 '-------------------------------------------
 '蛍光ペンで着色
 '-------------------------------------------
 '前の文字列
 With Selection
  Set myRange = myDoc.Range(.Start, .Start + Len(myText1))
 End With
 myRange.HighlightColorIndex = wdBrightGreen

 '後の文字列
 With Selection
  Set myRange = myDoc.Range(.End - Len(myText2), .End)
 End With
 myRange.HighlightColorIndex = wdBrightGreen

 '-------------------------------------------
 '選択の解除
 '-------------------------------------------
 Selection.Collapse wdCollapseEnd

 '-------------------------------------------
 '後処理
 '-------------------------------------------
 Set myRange = Nothing
 Set myDoc = Nothing

End Sub

トップへ戻る