以前紹介した「【コード】文字列を選択範囲の前後に挿入する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