Wordでは、いくつかの種類のセクション区切りをドキュメントに追加できます。セクション区切りタイプの2つでは、必要に応じてドキュメントに空白ページが追加されます。たとえば、奇数ページのセクション区切りを使用し、前のセクションが奇数ページで終了する場合、Wordは自動的に空白の偶数ページを挿入して、次のセクションが次の奇数ページから開始できるようにします。

これに伴う問題は、Wordが完全に空白のページを挿入することです。ページにヘッダーやフッターを印刷することすらありません。ページ上のヘッダーやフッター、またはその他の情報(「このページは意図的に空白になっている」など)が必要な場合は、Wordのセクション区切りだけに頼ることはできません。

1つのアプローチは、ドキュメントを手動で確認し、必要に応じて、ページに「印刷」される独自の非表示のテキストを追加することです。通常のテキストを追加して白でフォーマットすることにより、非表示のテキストを作成します。白地に白を印刷すると、見えなくなります。

ただし、Wordはこれを認識せず、「空白」ページにヘッダーとフッターを提供します。

興味深いアプローチは、独自のセクションの終わりの標準テキストを作成することです。エントリの先頭の改ページを含む、セクションの終わりのテキストを含むビルディングブロックエントリを作成します。エントリに「BLANKPAGE」のような名前を付けます。次に、各セクションの最後、セクション区切りの直前に、次の複合フィールドを追加します。

{ if { =int( {page} / 2 ) * 2 } = { page }  " " { autotext "BLANKPAGE" } }

この例に示されている中括弧は、フィールド中括弧であることになっていることに注意してください。セットごとにCtrl + F9を押して、中括弧を入力します。この場合、フィールドは現在のページが偶数であるかどうかを確認します。そうである場合、フィールドはAUTOTEXTフィールドを使用してビルディングブロックを自動的に挿入します。

必要に応じて、ドキュメントをステップ実行し、各セクションを確認し、セクション内のページ数を決定し、必要に応じてセクションの最後に改ページを追加するマクロを作成することもできます。次のマクロはまさにこれを実行します:

Sub CheckSecLen()

Dim iSec As Integer     Dim oRng As Range     Dim iValue As Integer

With ActiveDocument         ' go through each section (except for the last one)

For iSec = 1 To .Sections.Count - 1             ' create a range object at the start of the section             Set oRng = .Sections(iSec).Range             oRng.Collapse wdCollapseStart             ' insert a sectionpages field             .Fields.Add Range:=oRng, Type:=wdFieldSectionPages             ' divide the sectionpages field by 2             ' if it gives a zero as the remainder, then             ' you have an even number of pages in the section,             ' which is what you want with an odd section page break             If (.Sections(iSec).Range.Fields(1).Result Mod 2) <> 0 Then                 ' if you have an odd number of pages, then insert                 ' a page break before the section's section break                 Set oRng = .Sections(iSec).Range                 With oRng                     .Collapse Direction:=wdCollapseEnd                     .MoveEnd unit:=wdCharacter, Count:=-1                     .InsertBreak Type:=wdPageBreak                 End With             End If             ' remove the sectionpages field that was added             .Sections(iSec).Range.Fields(1).Delete         Next iSec     End With End Sub

注:

このページ(または_WordTips_サイトの他のページ)で説明されているマクロの使用方法を知りたい場合は、役立つ情報を含む特別なページを用意しました。

_WordTips_は、費用効果の高いMicrosoftWordトレーニングのソースです。

(Microsoft Wordは、世界で最も人気のあるワードプロセッシングソフトウェアです。)このヒント(12565)は、Microsoft Word 2007、2010、2013、2016、2019、およびOffice 365のWordに適用されます。このヒントのバージョンは、ここにWordの古いメニューインターフェイス: