Word 2003 で記録したマクロそのまま。なくすと面倒なのでここに保存。
以下のような使い方を想定。
エディタなどで下書きした文章を、ワードに貼り付けて、脚注とかをワードの書式で整理する。
原稿はこんな感じで作っておく。
あなたと私、いつも一緒にいるのよね。でもそうかしら?本当にいつも一緒にいると思うの?そうよ、本当にいるのよ。そんなことがあると思っているわけですか
\footnote{
頭がとことんまで疲労するとだんだん人格が壊れてくるな。
}
。そろそろ現実を見てくださいな。こわいなあ。
原稿作成時には、秀丸マクロで \footnote{とかの挿入とかを済ませてる。単純な話だけど。
で、この原稿に対して、以下の手順で処理を行う。
- カーソルは文書の冒頭にある位置からスタート。
- Ctrl+F(検索モード)→ \foot を検索させる。
- カーソルを2文字戻らせる。上の原稿で言うと、「ですか」と改行マークの間にカーソルが来る。
- F8キーを押す→拡張選択モード
- Ctrl+F → } を検索させる。脚注部分が選択される。
- Ctrl+X で脚注部分をカット。
- Alt+I→N→N で脚注挿入へ。条件を適当に入力+OK。このマクロではデフォルト。
- Ctrl+V で脚注部分をペースト。
- Ctrl+Home で文書の冒頭へ戻る。
以下のマクロは、それをただ記録しただけ。\footnote{}とか改行とかタブとかの削除はやっていない。まあ整形後に置換すればいいかなとか思ったので。
文書末に脚注を入れたいときは、マクロ後半の "With .EndnoteOptions" 以下の
".Location = wdBottomOfPage" を、
".Location = wdEndOfDocument"
に変更すること。面倒なので、二つとも残しておく。
Sub Macro2() ' ' TeX式脚注部分をページ下脚注に変換する。 ' 文頭にカーソルを置いた状態で実行。 ' \footnote命令は以下のように記載しておくこと。 ' ……である ' \footnote{ ' (タブ)脚注本文(文末改行) ' } ' 。それゆえ、…… ' Selection.Find.ClearFormatting With Selection.Find .Text = "\foot" .Replacement.Text = "" .Forward = True .Wrap = wdFindContinue .Format = False .MatchCase = False .MatchWholeWord = False .MatchByte = False .MatchAllWordForms = False .MatchSoundsLike = False .MatchWildcards = False .MatchFuzzy = True End With Selection.Find.Execute Selection.MoveLeft Unit:=wdCharacter, Count:=2 Selection.Extend Selection.Find.ClearFormatting With Selection.Find .Text = "}" .Replacement.Text = "" .Forward = True .Wrap = wdFindContinue .Format = False .MatchCase = False .MatchWholeWord = False .MatchByte = False .MatchAllWordForms = False .MatchSoundsLike = False .MatchWildcards = False .MatchFuzzy = True End With Selection.Find.Execute Selection.Cut With ActiveDocument.Range(Start:=ActiveDocument.Content.Start, End:= _ ActiveDocument.Content.End) With .FootnoteOptions .Location = wdBottomOfPage .NumberingRule = wdRestartContinuous .StartingNumber = 1 .NumberStyle = wdNoteNumberStyleArabic End With .Footnotes.Add Range:=Selection.Range, Reference:="" End With Selection.PasteAndFormat (wdPasteDefault) Selection.HomeKey Unit:=wdStory End Sub
Sub Macro3() ' ' TeX式脚注部分を文書末の脚注に変換する。 ' 脚注番号はアラビア数字。 ' 文頭にカーソルを置いた状態で実行。 ' \footnote命令は以下のように記載しておくこと。 ' ……である ' \footnote{ ' (タブ)脚注本文(文末改行) ' } ' 。それゆえ、…… Selection.Find.ClearFormatting With Selection.Find .Text = "\foot" .Replacement.Text = "" .Forward = True .Wrap = wdFindContinue .Format = False .MatchCase = False .MatchWholeWord = False .MatchByte = False .MatchAllWordForms = False .MatchSoundsLike = False .MatchWildcards = False .MatchFuzzy = True End With Selection.Find.Execute Selection.MoveLeft Unit:=wdCharacter, Count:=2 Selection.Extend Selection.Extend Selection.Find.ClearFormatting With Selection.Find .Text = "}" .Replacement.Text = "" .Forward = True .Wrap = wdFindAsk .Format = False .MatchCase = False .MatchWholeWord = False .MatchByte = False .MatchAllWordForms = False .MatchSoundsLike = False .MatchWildcards = False .MatchFuzzy = True End With Selection.Find.Execute Selection.Cut With ActiveDocument.Range(Start:=ActiveDocument.Content.Start, End:= _ ActiveDocument.Content.End) With .EndnoteOptions .Location = wdEndOfDocument .NumberingRule = wdRestartContinuous .StartingNumber = 1 .NumberStyle = wdNoteNumberStyleArabic End With .Endnotes.Add Range:=Selection.Range, Reference:="" End With Selection.PasteAndFormat (wdPasteDefault) Selection.HomeKey Unit:=wdStory End Sub