隅付き括弧と角括弧を入れ替えたいときに
たまに、段落番号の表示等で使う墨付き括弧’【】’を角括弧’[]’に変更するとき、または、その逆に変更するときがあります。
そのようなとき、簡単に括弧の種類を変更できるマクロを作成しました。
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
上記のマクロでは、【】 があるとき、【】→[]に置換します。また、【】がないとき、[]→ 【】に置換します。
範囲の選択があるとき、選択範囲が置換対象です。範囲の選択がないとき、全文が置換対象となります。
(参考)
