以前、脚注を括弧書きに変換するマクロを紹介しました。
しかし、脚注が長すぎると(255文字超)、エラーになります。
これを改良して、脚注が長くても対応できるようにしました。
次に紹介するマクロの他に、以前、紹介した「長い文字列の置換」「全てを置換」の二つの関数が必要になります。
括弧書きの括弧はkakkoLeftとkakkoRightで指定します。
Sub 脚注を括弧に()
Const kakkoLeft = "("
Const kakkoRight = ")"
Dim n As Long, kosu As Long
Dim mae, ato As String
Dim foottext(100) As String
Const markLeft = "<<"
Const markRight = ">>"
Selection.HomeKey Unit:=wdStory
With ActiveDocument.Content
kosu = ActiveDocument.Footnotes.Count
For n = 1 To kosu
With ActiveDocument.Footnotes(1)
foottext(n) = .Range.Text
End With
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = "^f"
.Replacement.Text = markLeft & n & markRight
.Wrap = wdFindContinue '処理を継続。
.MatchWildcards = False '特殊文字を検索。
.MatchFuzzy = False '20201011追加
End With
Selection.Find.Execute Replace:=1
Selection.Font.Superscript = False
Next n
End With
For n = 1 To kosu
mae = markLeft & n & markRight
ato = kakkoLeft & foottext(n) & kakkoRight
Call 長い文字列の置換(mae, ato)
Next n
Selection.HomeKey Unit:=wdStory
End Sub
Const kakkoLeft = "("
Const kakkoRight = ")"
Dim n As Long, kosu As Long
Dim mae, ato As String
Dim foottext(100) As String
Const markLeft = "<<"
Const markRight = ">>"
Selection.HomeKey Unit:=wdStory
With ActiveDocument.Content
kosu = ActiveDocument.Footnotes.Count
For n = 1 To kosu
With ActiveDocument.Footnotes(1)
foottext(n) = .Range.Text
End With
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = "^f"
.Replacement.Text = markLeft & n & markRight
.Wrap = wdFindContinue '処理を継続。
.MatchWildcards = False '特殊文字を検索。
.MatchFuzzy = False '20201011追加
End With
Selection.Find.Execute Replace:=1
Selection.Font.Superscript = False
Next n
End With
For n = 1 To kosu
mae = markLeft & n & markRight
ato = kakkoLeft & foottext(n) & kakkoRight
Call 長い文字列の置換(mae, ato)
Next n
Selection.HomeKey Unit:=wdStory
End Sub
編集中の文書に変更を施しますので、マクロは文書を保存してから実行してください。ご利用は自己責任でお願いします。
2020年10月11日追記
「動作しない」とコメントをいただきました。
置換のパラメータとして「MatchFuzzy = False」を追加しました。
コメント
[…] 2014年9月1日追記 上のマクロについては改良版があります。 […]
脚注を括弧書きに変換するマクロをこちらに書いてある通り実行しても出来ません?何が悪いのでしょうか?
ちなみOSは関係ありますか?
CP0さん
環境によって動作しないケースが有るようです。
一部修正しました。本文にも書きましたが、置換のパラメータとして「MatchFuzzy = False」を追加しました。
試していただけると助かります。
よろしくおねがいします。
stabuckyさま、試しました。出来るようになりました、感謝します。
ありがとうございます!
CP0さん
確認いただき、ありがとうございました。