2008年12月04日

Pageオブジェクト

Pagesコレクションのメンバは、CountプロパティとItemプロパティのみ。
つまり、このコレクションの用途として考えられるのは、基本的には総印刷ページ数を調べるぐらいのものです。

使用例:
MsgBox "このシートのページ数は" & _
  ActiveSheet.PageSetup.Pages.Count & "ページです。"

PagesコレクションのItemプロパティでインデックスを指定すると、個々の印刷ページを表すPageオブジェクトが取得できます。
Pageオブジェクトには各位置のヘッダー/フッターを表すLeftHeaderなどのプロパティが用意されており(というか、Pageオブジェクトの機能もこれぐらいしかありません)、これによってHeaderFooterオブジェクトが取得できます。
PageSetupオブジェクトのLeftHeaderプロパティなどの場合はオブジェクトは返さず、直接ヘッダー/フッターの文字列を取得・設定しますが、HeaderFooterオブジェクトの場合は、さらにTextプロパティでヘッダー/フッターを取得・設定します。

使用例:
ActiveSheet.PageSetup.Pages(2).CenterFooter.Text _
  = "&P"

各Pageオブジェクトにヘッダー/フッターが設定できるといっても、ページごとに違うヘッダー/フッターにできるというわけではありません。
1つのPageオブジェクトだけを対象に設定を変えても、その変更は全体に波及します。

ただし、Excel 2007では、PageSetupオブジェクトに、先頭ページだけ異なるヘッダー/フッターを設定するDifferentFirstPageHeaderFooterプロパティと、奇数ページと偶数ページで異なるヘッダー/フッターを設定するOddAndEvenPagesHeaderFooterプロパティが追加されており、それぞれTrue/Falseで設定できます。

つまり、この設定に応じて、先頭ページ、奇数ページ、偶数ページという、最大3つのページのグループができるわけです。
PageオブジェクトのLeftHeaderプロパティなどの設定が波及する「全体」とは、こうしたページのグループ全体のことです。

また、2007では、PageSetupオブジェクトに、先頭ページを表すFirstPageプロパティや、偶数ページを表すEvenPageプロパティが追加されており、これらに対してヘッダー/フッターを設定することができます。
OddPageプロパティというのはありませんが、奇数ページについては、基本のヘッダー/フッターの設定がそのまま生きます。

このFirstPageプロパティなどで取得されるのも、やはりPageオブジェクトです。
これらのプロパティに比べると、Pagesコレクションから取得する、特定のページを表すPageオブジェクトというのは、実際にはあまり活躍の場がないような気もします。

ちなみに、Excel VBAヘルプでFirstPageプロパティなどの項目を見ると、

ブックまたはセクション内の先頭ページで、文字列の配置を取得または設定します。

といった説明があるのみで、何のオブジェクトが取得されているかといった情報も、使用例もありません。(^^;)
posted by 土屋和人 at 08:04| Comment(0) | TrackBack(0) | Excel
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
この記事へのトラックバックURL
http://blog.sakura.ne.jp/tb/23810203
※言及リンクのないトラックバックは受信されません。

この記事へのトラックバック