- ベストアンサー
ExcelVBAでのページ番号設定について
Excel2010のVBAで資料作成のツールを検討しています。 印刷をする際、ページ番号をつけたいのですが ブック全体ではなくシート個別で印刷する場合もあるし、 ツールを実行するたびにページ数の増減もあるため、 どうやってVBAでページ番号をふったら良いのかわかりません。 アドバイスをお願いいたします。 なお、Excelファイルの中は複数シート、1シート複数ページの状態です。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
>総ページ数10ページで5ページ目だけを印刷したい場合もあるのですが、 >ページ番号を計算して書き込んでおくことは可能なのでしょうか。 5ページ目を5ページとして印刷するので有れば何の設定もいらないのでは それとも5ページ目だけを1ページとして印刷するのであれば With ActiveSheet.PageSetup .FirstPageNumber = -3 '先頭のページ番号 .RightHeader = "&P" End With ActiveSheet.PrintOut From:=5, To:=5, Preview:=True '5ページ目を印刷
その他の回答 (3)
- FEX2053
- ベストアンサー率37% (7991/21373)
いや、だから、印刷するページ番号をVBA上で指定させればいいん じゃないかと。Excelの印刷機能を直接使わずに。 例えば、印刷ページを入力させるセルを作れば、そこから数値は 得られますでしょ?その数値を使って印刷するマクロを動作させれば いいんです。 Excelの機能から印刷させた場合(印刷ページセルに入力が無い 場合)、ページ番号のセルに「正しい手順で印刷されていませんので、 ページ番号は出力できません」と印刷させることだってできますよね。 ページ番号がセルに設定されるんですから。
お礼
いただいたヒントを参考に解決できました。 ありがとうございました。
- watabe007
- ベストアンサー率62% (476/760)
>ツールを実行するたびにページ数の増減もあるため、 >どうやってVBAでページ番号をふったら良いのかわかりません。 FirstPageNumberプロパティを使うと先頭ページ番号を設定できます。 [例]アクティブシートの右ヘッダーのページ番号を11から始めます。 With ActiveSheet.PageSetup .FirstPageNumber = 11 .RightHeader = "&P" End With
お礼
いただいたヒントを参考に解決できました。 ありがとうございました。
補足
ご回答ありがとうございます。 総ページ数10ページで5ページ目だけを印刷したい場合もあるのですが、 ページ番号を計算して書き込んでおくことは可能なのでしょうか。
- FEX2053
- ベストアンサー率37% (7991/21373)
VBAが動いているなら、何もフッターを使わなくても、「印刷する シートの最下部中央セルに、ページ番号を直接計算して書き込む」 なんて方法で済むと思うんですが?
お礼
いただいたヒントを参考に解決できました。 ありがとうございました。
補足
ご回答ありがとうございます。 ページ番号が印刷できれば良いので、ご指摘いただいた内容でも大丈夫です。 が、総ページ数10ページで5ページ目だけを印刷したい場合もあるのですが、 ページ番号を計算して書き込んでおくことは可能なのでしょうか。
お礼
いただいたヒントを参考に解決できました。 ありがとうございました。
補足
回答ありがとうございます。 説明がうまくできずすみません。 たとえばワークシートが2シートあった場合、2シート目だけを印刷しても ページ番号を"2"にしたいです。 また、ワークシートの数や1シートのページ数が可変のため、 資料を作成後、にそれぞれのページ番号を計算して付けたいと考えています。