Wordで脚注を括弧書きに変換するマクロ

Pocket

以前、脚注を括弧書きに変換するマクロを紹介しました。
しかし、脚注が長すぎると(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

編集中の文書に変更を施しますので、マクロは文書を保存してから実行してください。ご利用は自己責任でお願いします。

2020年10月11日追記
「動作しない」とコメントをいただきました。
置換のパラメータとして「MatchFuzzy = False」を追加しました。

[ 2014年9月1日 | カテゴリー: Word | タグ: ]

« | »

コメント

  1. […] 2014年9月1日追記 上のマクロについては改良版があります。 […]

  2. CP0 より:

    脚注を括弧書きに変換するマクロをこちらに書いてある通り実行しても出来ません?何が悪いのでしょうか?
    ちなみOSは関係ありますか?

  3. stabucky より:

    CP0さん
    環境によって動作しないケースが有るようです。
    一部修正しました。本文にも書きましたが、置換のパラメータとして「MatchFuzzy = False」を追加しました。
    試していただけると助かります。
    よろしくおねがいします。

  4. CP0 より:

    stabuckyさま、試しました。出来るようになりました、感謝します。
    ありがとうございます!

  5. stabucky より:

    CP0さん
    確認いただき、ありがとうございました。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

送信してください。


タグ

カテゴリー

最近の投稿

最近のコメント

固定ページ

アーカイブ

stabucky

写真

メタ情報