次の方法で共有


Office Space : Microsoft Word 文書にページ番号を追加する

Office Space

Office Space へようこそ。Office Space は、Microsoft® Office アプリケーションのスクリプト作成に関するヒントとテクニックを紹介する新しいコラムです。過去のヒントについては、Office Space アーカイブを参照してください。Microsoft Office でのスクリプト作成について質問がある場合は、scripter@microsoft.com (英語のみ) までお送りください。すべての質問に回答することはできないかもしれませんが、可能な限り対応いたします。

Microsoft Word 文書にページ番号を追加する

率直に言って、デザインに凝ったレポートを作成するために Microsoft Word を使用する必要はありません。Word の能力を最大限に活用して、デザインに凝ったレポートを作成したいというのであれば別ですが。もっとも、レポートは必ず WordArt やクリップ アート、さらには派手な色のフォントなどで埋め尽くさなければならないわけではありません。とは言え、普通のテキスト ファイルでは使用できない、効果的で便利なちょっとした趣向を加える必要はあります。たとえば、ページ番号のようなものです。

しかし、Word にページ番号を付けるのは難しいのではないかと思われているようです。実際は、少しも難しくはありません。たとえば、次に示すスクリプトは既定値に基づいて文書のフッターにページ番号を追加します。ページ番号を文書のヘッダーに追加する場合は、まず次のコード行を探してください。

Set objPageNumbers = objSection.Footers(1).PageNumbers

このコードを次のように変更します。

Set objPageNumbers = objSection.Headers(1).PageNumbers

スクリプトの全体を次に示します。

On Error Resume Next

Const wdPageBreak = 7

Set objWord = CreateObject("Word.Application")
objWord.Visible = True
Set objDoc = objWord.Documents.Add()

Set objSection = objDoc.Sections(1)
Set objSelection = objWord.Selection

Set objPageNumbers = objSection.Footers(1).PageNumbers
objPageNumbers.Add(1)

objSelection.TypeText "This is page 1."
objSelection.InsertBreak(wdPageBreak)
objSelection.TypeText "This is page 2."
objSelection.InsertBreak(wdPageBreak)
objSelection.TypeText "This is page 3."

このスクリプトでは、まず wdPageBreak という定数を定義しています。この定数は文書に 2 つの改ページを挿入するために使用します。ちなみに、この部分はページ番号を追加するプロセスに不可欠のものではありません。ページ番号がどのように追加されるかがよくわかるように、複数のページから成る文書を作成しているだけです。

次に、Word.Application オブジェクトのインスタンスを作成し、Visible プロパティを True に設定します (この設定によって、完成した文書を画面上で確認することができます)。その後、Add メソッドを使用して新規文書を作成します。この段階で、ページ番号を追加することができます。

ページ番号を追加するには、まず文書のセクション 1 を表すオブジェクト参照 objSection を作成します (ここで使用する文書にはセクションが 1 つしかありません)。Selection オブジェクトのオブジェクト参照 (objSelection) も作成します。このオブジェクト参照は後で文書にテキストを追加するために使用します。この 2 つの操作は、次に示す 2 行のコードで実行します。

Set objSection = objDoc.Sections(1)
Set objSelection = objWord.Selection

ここまで来ると、残るコードはページ番号を追加する 2 行だけです。最初の行では PageNumbers オブジェクトのインスタンスを作成し、文書の最初のフッターにページ番号を追加することを指定します。

Set objPageNumbers = objSection.Footers(1).PageNumbers

次の行では、Add メソッドを呼び出して、文書にページ番号を追加します。

objPageNumbers.Add(1)

以上です。この後の部分では、文書に複数のページがある方がわかりやすいため、文書にテキストと改ページをいくつか追加します。最終的に、文書には次のようなページ番号が表示されます。

Microsoft Word

もちろん、もっと凝ったページ番号を追加することもできます。次の表は、ページ番号の書式設定オプションを示しています。

プロパティ

説明

NumberStyle

使用する番号の種類を指定します。定数 wdPageNumberStyleUppercaseRoman (値 1) は、I、II、III、IV などの大文字のローマ数字を表します。

ShowFirstPageNumber

ページ番号を文書の最初のページに追加するかどうかを指定します。False に設定すると、1 ページ目にはページ番号が表示されません。True に設定すると、1 ページ目にもページ番号が表示されます。

RestartNumberingAtSection

ページ番号をセクションごとに振り直します。別の StartingNumber を指定する場合は、RestartNumberingAtSection を True に設定する必要があります。

StartingNumber

文書 (またはセクション) の最初のページに割り当てるページ番号を指定します。次のスクリプトでは、StartingNumber を 10 に設定しています。これは、最初のページのページ番号が 10 (または大文字のローマ数字 X) になることを意味します。

次に示すスクリプトは、最初のスクリプトに上記の表に示すオプションをすべて追加したものです。

On Error Resume Next

Const wdPageBreak = 7
Const wdPageNumberStyleUppercaseRoman = 1

Set objWord = CreateObject("Word.Application")
objWord.Visible = True
Set objDoc = objWord.Documents.Add()

Set objSection = objDoc.Sections(1)
Set objSelection = objWord.Selection

Set objPageNumbers = objSection.Footers(1).PageNumbers
objPageNumbers.NumberStyle = wdPageNumberStyleUppercaseRoman
objPageNumbers.ShowFirstPageNumber = FALSE
objPageNumbers.RestartNumberingAtSection = TRUE
objPageNumbers.StartingNumber = 10
objPageNumbers.Add(1)

objSelection.TypeText "This is page 1."
objSelection.InsertBreak(wdPageBreak)
objSelection.TypeText "This is page 2."
objSelection.InsertBreak(wdPageBreak)
objSelection.TypeText "This is page 3."

ご覧のとおり、PageNumbers オブジェクトを作成し、そのオブジェクトのプロパティ値 (NumberStyle、ShowFirstPageNumber など) を設定します。プロパティ値を設定したら、Add メソッドを呼び出して、書式を設定したページ番号を文書に追加します。

次に、デザインを工夫したページ番号を示します。

Microsoft Word