次のページの最初の2つの単語をフッターに配置する(Microsoft Word)
Dawnは、ドキュメントの各ページのフッターに、ドキュメントの次のページに表示される最初の2つの単語を含めることを望んでいます。ページネーションが変更された場合は、もちろん、フッターが更新されて、次のページの上部にある2つの単語が反映されます。
これはいくつかの理由で難しい問題です。 Wordでは、STYLEREFフィールドを使用して、「辞書スタイル」のヘッダーまたはフッターをかなり簡単に作成できます。ただし、そのフィールドは常に、STYLEREFフィールドが表示されるページでのスタイルの最初または最後の使用法を参照します。 Dawnの場合、彼女は現在のページではなく、次のページの単語を求めています。
ただし、最大の問題は、ドキュメントで編集が行われるときに、フッターを動的に更新する必要があることです。 Wordが提供するツールでこれを行う方法を見つけることができませんでした。必要に応じて、フッターを設定するマクロを作成できますが、落とし穴があります。各ページには異なるフッターがあるため、各ページの最後にセクション区切りを追加する必要があります。もちろん、これは、後でテキストを追加または削除する場合は、セクション区切りを削除して、各ページの終わりと再び一致させる必要があることを意味します。
複雑に聞こえますか?特に、ページ数の多いドキュメントがある場合は、そのようなドキュメントには多くのセクション区切りが必要になるため、そうなる可能性があります。
それでも、次のようなマクロは、目的を達成するのに役立ちます。
Sub FillFooter() Dim iPage As Integer Dim iSec As Integer Dim sFText As String Dim sTemp As String sFText = "See next page for this: " Selection.HomeKey Unit:=wdStory ' Go to beginning of document ' Use Find and Replace to get rid of all section breaks Selection.Find.ClearFormatting Selection.Find.Replacement.ClearFormatting With Selection.Find .Text = "^b" .Replacement.Text = "" .Forward = True .Wrap = wdFindContinue .Format = False .MatchCase = False .MatchWholeWord = False .MatchByte = False .MatchAllWordForms = False .MatchSoundsLike = False .MatchWildcards = False .MatchFuzzy = False End With Selection.Find.Execute Replace:=wdReplaceAll iSec = 1 ' Only 1 section now in document For iPage = 1 To Selection.Information(wdNumberOfPagesInDocument) - 1 ' Figure out first two words on "next page" Selection.GoTo what:=wdGoToPage, which:=wdGoToNext, Name:=iPage + 1 Selection.MoveRight Unit:=wdWord, Count:=2, Extend:=wdExtend sTemp = Trim(Selection) While Asc(Right(sTemp, 1)) < 65 ' Word counts punctuation, tabs, etc. as a word, so grab another word Selection.MoveRight Unit:=wdWord, Count:=1, Extend:=wdExtend sTemp = Trim(Selection) Wend Selection.Collapse ' Now at beginning of page again Selection.MoveUp Unit:=wdParagraph Selection.InsertBreak Type:=wdSectionBreakContinuous ' Set text for page footer With ActiveDocument.Sections(iSec).Footers(wdHeaderFooterPrimary) .LinkToPrevious = False .Range.Text = sFText & sTemp End With iSec = iSec + 1 Next iPage End Sub
マクロは最初にドキュメントからすべてのセクション区切りを削除し、次にドキュメントの各ページを調べて、それぞれの最初の2つの単語を把握します。次に、段落をステップパックし、連続したセクション区切りを追加し、最後にそのセクションのフッターを目的のテキストと等しくなるように設定します。フッターは、次のページの最初の2つの単語が後に続くsFText変数の内容と同じに設定されていることに注意してください。
このようなマクロは、目的のフッターへの「静的」アプローチを提供することを理解してください。つまり、ドキュメントに変更を加えた場合は、もう一度マクロを実行してフッターを更新する必要があります。
注:
このページ(または_WordTips_サイトの他のページ)で説明されているマクロの使用方法を知りたい場合は、役立つ情報を含む特別なページを用意しました。
_WordTips_は、費用効果の高いMicrosoftWordトレーニングのソースです。
(Microsoft Wordは、世界で最も人気のあるワードプロセッシングソフトウェアです。)このヒント(2835)は、Microsoft Word 2007、2010、2013、および2016に適用されます。