• ベストアンサー

ExcelVBAでのページ番号設定について

Excel2010のVBAで資料作成のツールを検討しています。 印刷をする際、ページ番号をつけたいのですが ブック全体ではなくシート個別で印刷する場合もあるし、 ツールを実行するたびにページ数の増減もあるため、 どうやってVBAでページ番号をふったら良いのかわかりません。 アドバイスをお願いいたします。 なお、Excelファイルの中は複数シート、1シート複数ページの状態です。

質問者が選んだベストアンサー

  • ベストアンサー
  • watabe007
  • ベストアンサー率62% (476/760)
回答No.3

>総ページ数10ページで5ページ目だけを印刷したい場合もあるのですが、 >ページ番号を計算して書き込んでおくことは可能なのでしょうか。 5ページ目を5ページとして印刷するので有れば何の設定もいらないのでは それとも5ページ目だけを1ページとして印刷するのであれば With ActiveSheet.PageSetup   .FirstPageNumber = -3 '先頭のページ番号   .RightHeader = "&P" End With ActiveSheet.PrintOut From:=5, To:=5, Preview:=True '5ページ目を印刷

komegu_66
質問者

お礼

いただいたヒントを参考に解決できました。 ありがとうございました。

komegu_66
質問者

補足

回答ありがとうございます。 説明がうまくできずすみません。 たとえばワークシートが2シートあった場合、2シート目だけを印刷しても ページ番号を"2"にしたいです。 また、ワークシートの数や1シートのページ数が可変のため、 資料を作成後、にそれぞれのページ番号を計算して付けたいと考えています。

その他の回答 (3)

  • FEX2053
  • ベストアンサー率37% (7991/21371)
回答No.4

いや、だから、印刷するページ番号をVBA上で指定させればいいん じゃないかと。Excelの印刷機能を直接使わずに。 例えば、印刷ページを入力させるセルを作れば、そこから数値は 得られますでしょ?その数値を使って印刷するマクロを動作させれば いいんです。 Excelの機能から印刷させた場合(印刷ページセルに入力が無い 場合)、ページ番号のセルに「正しい手順で印刷されていませんので、 ページ番号は出力できません」と印刷させることだってできますよね。 ページ番号がセルに設定されるんですから。

komegu_66
質問者

お礼

いただいたヒントを参考に解決できました。 ありがとうございました。

  • watabe007
  • ベストアンサー率62% (476/760)
回答No.2

>ツールを実行するたびにページ数の増減もあるため、 >どうやってVBAでページ番号をふったら良いのかわかりません。 FirstPageNumberプロパティを使うと先頭ページ番号を設定できます。 [例]アクティブシートの右ヘッダーのページ番号を11から始めます。 With ActiveSheet.PageSetup   .FirstPageNumber = 11   .RightHeader = "&P" End With

komegu_66
質問者

お礼

いただいたヒントを参考に解決できました。 ありがとうございました。

komegu_66
質問者

補足

ご回答ありがとうございます。 総ページ数10ページで5ページ目だけを印刷したい場合もあるのですが、 ページ番号を計算して書き込んでおくことは可能なのでしょうか。

  • FEX2053
  • ベストアンサー率37% (7991/21371)
回答No.1

VBAが動いているなら、何もフッターを使わなくても、「印刷する シートの最下部中央セルに、ページ番号を直接計算して書き込む」 なんて方法で済むと思うんですが?

komegu_66
質問者

お礼

いただいたヒントを参考に解決できました。 ありがとうございました。

komegu_66
質問者

補足

ご回答ありがとうございます。 ページ番号が印刷できれば良いので、ご指摘いただいた内容でも大丈夫です。 が、総ページ数10ページで5ページ目だけを印刷したい場合もあるのですが、 ページ番号を計算して書き込んでおくことは可能なのでしょうか。

関連するQ&A

専門家に質問してみよう