
Excel2010 VBAにてマクロを作成しております。
Excel2010のメインウィンドウの「ファイル」タブ→「印刷」の
画面におきまして、[設定]欄にて設定したページ指定(印刷開始ページ及び
印刷終了ページ)は取得できるのでしょうか?
Workbook_BeforePrintプロシージャにて取得しようと思っているのですが、
ActiveSheet.PageSetupのメンバやThisWorkbookのメンバを見たところ、
印刷の開始ページ及び終了ページの設定が見つかりませんでした。
印刷のページ指定の設定箇所をご存知の方がいらっしゃいましたら
教えて頂きたく宜しくお願い致します。
No.2ベストアンサー
- 回答日時:
直接の回答とは言えないことをまずはお詫びしつつ。
私の頭の中には
「全頁の上端・下端に“同じモノ”を印刷する」
という事がヘッダー・フッターの意義である、というモノがありますので
(当然、ページ番号などの可変部分は除きます)、
質問者さまの
> 別シートに記述の「ページごとのヘッダー値」
と言う考え方にはなかなか賛同できずにいます。
具体的に「ヘッダーフッターの位置にどのように印刷したいのか」がわかれば、
なんとなくでも策が見いだせるかもしれません。
例えば、
「奇数ページは右端にヘッダーフッターを、偶数ページは左端に」
と言うのであれば、2007以降「奇数/偶数ページ別指定」というオプションが付きましたので
単純にこの機能を使ってやれば済みます。
潰れて見辛いかもしれませんが、
「ページ設定」の中、「奇数/偶数ページ別指定」にチェックを入れ、
「ヘッダー(フッター)の編集」をクリックすると、
「奇数ページ/偶数ページのヘッダー(フッター)」のタブが現れますので、
これで別々に設定してやります。
ちなみにVBAで記述する際は
Sub ODD_EVEN_HEADER_FOOTER()
Application.PrintCommunication = False
With ActiveSheet.PageSetup
' 奇数ページのヘッダー/フッター
.LeftHeader = ""
.CenterHeader = ""
.RightHeader = ""
.LeftFooter = ""
.CenterFooter = ""
.RightFooter = "奇数"
' 奇数/偶数ページ別ON
.OddAndEvenPagesHeaderFooter = True
'偶数ページのヘッダー/フッター
.EvenPage.LeftHeader.Text = ""
.EvenPage.CenterHeader.Text = ""
.EvenPage.RightHeader.Text = ""
.EvenPage.LeftFooter.Text = "偶数"
.EvenPage.CenterFooter.Text = ""
.EvenPage.RightFooter.Text = ""
End With
Application.PrintCommunication = True
End Sub
こんな感じのようです。
いや、そうじゃない。本当に「ページ別に変えたいんだ」というのであれば、
回答として「エクセルにはその機能は無いはずです」と言うものを提示させていただきます。
前述の通り、それは「ヘッダー/フッターの考え方と若干ずれている」からです。
強引にコレを実現するなら
※例えば1行目から100行目で10行ごとに改ページなら
まずは印刷範囲を指定して、
以下10行ごとに
・印刷範囲を指定
・ヘッダー/フッターを設定
・印刷
を繰り返すようなイメージになるのではないかなぁ、と思います。
以上、何かの参考までにお納めくださいませ。

ご回答ありがとうございました。
> 直接の回答とは言えないことをまずはお詫びしつつ。
ご丁寧にありがとうございます。
こちらこそご回答を頂きながらお礼が遅くなりまして申し訳ありません。
> 私の頭の中には
> 「全頁の上端・下端に“同じモノ”を印刷する」
> という事がヘッダー・フッターの意義である、というモノがありますので
> (当然、ページ番号などの可変部分は除きます)、
> 質問者さまの
>> 別シートに記述の「ページごとのヘッダー値」
> と言う考え方にはなかなか賛同できずにいます。
>
> 具体的に「ヘッダーフッターの位置にどのように印刷したいのか」がわかれば、
> なんとなくでも策が見いだせるかもしれません。
tsubuyuki様の仰るのもごもっともです。
ヘッダー・フッターは同じものを印刷すると理解しているのですが、
ページ番号などの可変部分は使用できるので、同じように可変に
できないものかと思ってしまっています。
具体的には1枚のシートに月報を作っておりまして、月ごとに
改ページを行っております。
4ページ目:2013年4月
5ページ目:2013年5月
6ページ目:2013年6月
~
13ページ目:2014年1月
14ページ目:2014年2月
15ページ目:2014年3月
※先頭ページ番号を4に設定
最初の質問の仰々しさからすると大した内容ではない
ヘッダー・フッターなのですが、ヘッダーとフッターには
ヘッダー:yyyy年m月 月報
フッター:月ごとの注意事項
を印刷しようと考えております。
ExcelVBAでの記述は
Workbook_BeforePrintで
印刷ページ分ループ内にて
ActiveSheet.PageSetup.CenterHeader =
StrConv(CStr(Format(DateSerial("2013", ページ番号, "1"), "yyyy年m月")), vbWide)
と設定して1枚ずつ印刷を実行するイメージです。
> 例えば、
> 「奇数ページは右端にヘッダーフッターを、偶数ページは左端に」
> と言うのであれば、2007以降「奇数/偶数ページ別指定」というオプションが付きましたので
> 単純にこの機能を使ってやれば済みます。
>
> ....
> こんな感じのようです。
このような機能もあるのですね。
今回は奇数/偶数ページでは分けられないので利用させて頂くことは
できないようですが、よい知識を得ることができました。
ありがとうございます。
> いや、そうじゃない。本当に「ページ別に変えたいんだ」というのであれば、
> 回答として「エクセルにはその機能は無いはずです」と言うものを提示させていただきます。
> 前述の通り、それは「ヘッダー/フッターの考え方と若干ずれている」からです。
>
> 強引にコレを実現するなら
> ※例えば1行目から100行目で10行ごとに改ページなら
> まずは印刷範囲を指定して、
> 以下10行ごとに
> ・印刷範囲を指定
> ・ヘッダー/フッターを設定
> ・印刷
> を繰り返すようなイメージになるのではないかなぁ、と思います。
>
>
> 以上、何かの参考までにお納めくださいませ。
先ほどのヘッダーフッターの奇数/偶数ページ別指定のように
Excelとしてヘッダーフッターの機能として沿っているものは
ついているわけで。Win32APIのOpenPrinter・GetPrinterを使用して、
DEVMODEやPRINTER_INFOなどを取得してみましたが、どこにも
印刷開始ページ、終了ページの情報はありませんでした。
tsubuyuki様の仰るように僕の行おうとしていることは
ヘッダーフッターの考え方からずれているのかと思われます。
やはりシートに記述する内容なのもしれません。

No.1
- 回答日時:
こんにちは。
取得する目的は?
取得ってできるのかな?
設定は、PrintPutメソッドに引数があるのでできます。
早々とご回答ありがとうございます。
目的としましては以下のように印刷時に
別シートに記述してあるページごとのヘッダー、
フッターの内容に入れ替えようと思っております。
Private Sub Workbook_BeforePrint(Cancel As Boolean)
※取得できるなら「ファイル」タブ→「印刷」にて
指定したページ番号ループにしたい
For i = 開始ページ To 終了ページ
With ActiveSheet
With .PageSetup
.CenterHeader = 別シートに記述のページごとのヘッダー値
.CenterFooter = 別シートに記述のページごとのフッター値
End With
.PrintOut 1ページずつ
End With
Next
End Sub
取得できないようでしたら、印刷用のボタンと
開始ページ、終了ページを設定するシートを作成して
そこから行うことになるのかなと思っております。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 【マクロ】webアドレスにて指定されたCSVファイル【excelソフト表示】を印刷する件 1 2023/02/15 01:52
- PDF EXCEL ページを指定してPDF出力するVBAを教えてください。 2 2023/02/09 10:27
- Excel(エクセル) Excelであるシートだけ印刷できない 1 2022/04/01 09:04
- ノートパソコン Windows11homeを新しく購入し、初期設定をしています。 前のパソコンでは無線のFAX機や有 5 2023/04/18 19:50
- Excel(エクセル) エクセル2013「次のページ数に合わせて印刷」が小さすぎる 9 2023/03/28 10:18
- その他(Microsoft Office) Excelのマクロについて教えてください。 1 2022/03/25 10:03
- ノートパソコン ページ番号の入れ方について 3 2023/02/16 17:11
- ノートパソコン 小冊子で印刷したいのですが、開始と終了のページが変更できません。どうすればよいのでしょうか? 以前は 1 2023/05/11 11:08
- Visual Basic(VBA) VBAでPDFのアクティブページ番号取得 1 2023/05/25 12:41
- Excel(エクセル) 【Excel】複数シートがあるエクセルデータで片面印刷と両面印刷設定がシートごとに入 1 2023/03/10 15:25
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
EXCELで一覧表のデータを個別に...
-
エクセルで長い行を1枚に印刷し...
-
エクセル2013で1ページ目と2ペ...
-
Word作成文書をA3用紙5枚の両面...
-
ワードからPDF作成したら文字色...
-
エクセル 長い表を1枚のPDFか...
-
Excelで連番(ナンバリング)印刷
-
A4に2ページ印刷
-
ぴったり印刷するエクセルVBAを...
-
Excelで印刷の際のページ設定
-
エクセルで画面では罫線が出て...
-
ワード2000>B6・4枚をB4...
-
Wordでこのような三角が出てく...
-
ワードに「URL」を貼り付けると...
-
ワードで棒線が直接文章に入る...
-
WORD ある縦線が消せない
-
エクセルで黒十字が表示されません
-
印刷用紙の中央に点線をいれた...
-
エクセルで薄く透ける文字を入...
-
ワードで定型レイアウトを崩さ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
EXCELで一覧表のデータを個別に...
-
エクセルのページ番号印刷を3枚...
-
ワードからPDF作成したら文字色...
-
エクセルで長い行を1枚に印刷し...
-
エクセル2013で1ページ目と2ペ...
-
エクセルで画面では罫線が出て...
-
エクセル 表を大きく、紙いっ...
-
Excelで印刷!集計行をすべての...
-
Excelで連番(ナンバリング)印刷
-
WordでA3の大きさで左半分と...
-
EXCEL印刷
-
Word作成文書をA3用紙5枚の両面...
-
ぴったり印刷するエクセルVBAを...
-
エクセルの表がプレビューで見...
-
セルに画面上色をつけて、印刷...
-
ワードで「1枚あたりのページ...
-
excelで、印刷時にのみ表示され...
-
エクセル 長い表を1枚のPDFか...
-
EXCEL2003で袋とじ印刷ってでき...
-
EXCELの改ページプレビューと印...
おすすめ情報