- ベストアンサー
EXCEL のペ-ジ
EXCEL を用いてペ-ジ番号を 奇数ページは右下 偶数ページは左下 に表示されるようにするには どうすればよいのでしょうか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
↓のマクロでいかがでしょうか? Sub test() Dim PPage As Integer Dim i As Integer Dim RFooter As String Dim LFooter As String Const myFooter As String = "&P" PPage = Application.ExecuteExcel4Macro("get.document(50)") '総ページ数を取得 For i = 1 To PPage If i Mod 2 = 1 Then RFooter = myFooter '奇数ページの場合右フッターにページ番号 LFooter = "" Else RFooter = "" LFooter = myFooter '偶数ページの場合左フッターにページ番号 End If With ActiveSheet With .PageSetup .RightFooter = RFooter .LeftFooter = LFooter End With .PrintOut From:=i, To:=i ', Preview:=True '←プレビューでチェックしたい場合、「'」をはずす End With Next End Sub 記マクロを実行するには、以下の手順です。 1.上記マクロの Sub から End Sub までを選択してCtrl+C (コピー) 2.Alt+F11(メニュー[ツール]-[マクロ]-[VBE]) →VBE(Visual Basic Editor)が開く 3.プロジェクトエクスプローラで、VBAProject(<当該ブック名>)を選択 4.メニュー[挿入]-[標準モジュール] 5.Ctrl+V (貼り付け) 6.Alt+F4(メニュー[ファイル]-[終了してMicrosoft Excelへ戻る]) 7.この処理を実行したシートを表示した状態で、Alt+F8(メニュー[ツール]-[マクロ]-[マクロ]) 8.実行したいマクロ名(この場合、test)を選択 9.[実行]ボタンをクリック エクセル技道場-マクロ http://www2.odn.ne.jp/excel/waza/macro.html
その他の回答 (2)
- imogasi
- ベストアンサー率27% (4737/17069)
操作・設定では下記(A)以外では不可能です。 ーー 普通はVBAなら少し融通が利く場合が多いですが、本件はVBAを使ってもでも、望みどおりにはスンナリ行きません。 原因はエクセルーOS-プリンタの指示の流れで、一括的委託的印刷依頼が行われていて、ページ印刷後に一々プリンタからの終りましたの反応が返ってこないので、VBAでその機会を捉えて設定の変更を駆使できない仕組みのため、各ページ印刷前にエクセル側から口出しできないことにあると思います。BeforPagePrintEditのようなイベント(判りますか?)があればよいのにと思いますが、無いようです。 ーー バリエーションとして (1)エクセルのシートのあるセルにページ数を載せる方法 (2)ヘッダー・フターの左・中・右のどれかを使う方法 のどれか ーー (A)手動ページ範囲印刷指定、各ページ印刷を手動印刷操作 (B)VBAで1ページづつ範囲を(ヅラして)捉えて、1ぺージづつ印刷指令のPrintOutを出す方法。 (普通は範囲指定をしてPrintOut指令を出すと、印刷範囲が何ページ分あっても、ページ設定情報などは一律で、全ページが一度に印刷がされる。) ーー 1ページの範囲の割り出しも (x)ページ印刷範囲も、定数行・定数列で決まる場合 (y)印刷前のHPageBreakとVPageBreakを察知して割り出さないといけない場合 の2種は考えられる。 このように、質問のケースがどの組み合わせであれば、実現できるのか、質問文では判らないので、すぐはVBAコードもかけない。 ーー 言っていることが良くわからないとか判らない場合は、本回答は無視してください。 ーー それであれば、質問者には手動でやる以外は事実上出来ないってことです。 (1)上記(1)(2)はユーザーが設定 (2)1ページ印刷範囲指定 (3)手動印刷 (4)設定変更(質問の要求を入れるためのフター・ヘッダー抹消や指定) (5)次ページ範囲指定 (6)手動印刷 以下続く。
お礼
ありがとうございます。勉強になります。
標準ではそういう機能はありませんよ。 VBAでなんとかできるかということですか? VBA経験者ですか? 以上
お礼
ありがとうございます。素晴らしいです。