隅付き括弧と角括弧を入れ替えたいときに
たまに、段落番号の表示等で使う墨付き括弧’【】’を角括弧’[]’に変更するとき、または、その逆に変更するときがあります。
そのようなとき、簡単に括弧の種類を変更できるマクロを作成しました。
Sub 括弧の種類を変えます() Dim cur As Range Dim objRng As Range Set cur = Selection.Range Set objRng = Selection.Range '選択範囲がないとき全文を置換範囲にします If cur.Start = cur.End Then objRng.Start = 0 objRng.End = ActiveDocument.Bookmarks("\EndOfDoc").End End If If 語句あるかB("【", objRng) = True Or 語句あるかB("】", objRng) = True Then Call 範囲を指定して置き換えるB("【", "[", objRng) Call 範囲を指定して置き換えるB("】", "]", objRng) Else Call 範囲を指定して置き換えるB("[", "【", objRng) Call 範囲を指定して置き換えるB("]", "】", objRng) End If cur.Select Set objRng = Nothing Set cur = Nothing End Sub Function 語句あるかB(ByRef 検索文字 As String, ByRef rng As Range) As Boolean If Not rng Is Nothing Then rng.Select With Selection.Find .ClearFormatting .Replacement.ClearFormatting .Text = 検索文字 .Format = False .Forward = True .Wrap = wdFindStop .MatchFuzzy = False .MatchWildcards = False 語句あるかB = .Execute .Text = "" End With End Function Sub 範囲を指定して置き換えるB(ByRef 置換前 As String, ByRef 置換後 As String, ByRef rng As Range) With rng.Find .ClearFormatting .Replacement.ClearFormatting .Text = 置換前 .Replacement.Text = 置換後 .Format = False .Forward = True .Wrap = wdFindStop .MatchWildcards = False .MatchFuzzy = True .Execute Replace:=wdReplaceAll .Text = "" .Replacement.Text = "" .MatchFuzzy = False End With End Sub
上記のマクロでは、【】 があるとき、【】→[]に置換します。また、【】がないとき、[]→ 【】に置換します。
範囲の選択があるとき、選択範囲が置換対象です。範囲の選択がないとき、全文が置換対象となります。
(参考)