
エクセルのマクロで「ThisWorkbook」に
Private Sub Workbook_BeforePrint(cancel As Boolean)イベントを
記載しています。
エクセルの印刷ボタンやプレビューでは、上記イベントが実行されますが、マクロモジュール内のPrintやPrintPreviewの前には、実行されません。マクロの実行過程をステップインで追ってみると、PrintやPrintPreviewの前にPrivate Sub を読みにいくようなのですが実行はされないようで、非常に困っております。
どなたか詳しい方ご教授お願いいたします。
No.2ベストアンサー
- 回答日時:
こんにちは。
>ActiveWindow.SelectedSheets.PrintPreview
ここのActiveWindow.SelectedSheets は、ひとつのシートだと思いますが、その現象は確認できました。複数のシートですと、解決方法は違いますが、このようにして、解決方法はひとつにまとめてしまえばよいとは思います。
'-------------------------------------------
ActiveSheet.PageSetup.LeftFooter = "&14&""Arial""NO." & Format(Now(), "0.000")
ActiveSheet.PrintPreview
'-------------------------------------------
ActiveSheet.PageSetUpが呼び出されていないようです。PageSetUpは、オブジェクトですが、イベントからでは、PageSetUpオブジェクトを確保せずに抜けてしまうようです。なぜでしょうね。他にも、Workbook イベントには、他のマクロが無視されてしまうというような現象があるようですが、私は、良い説明が出来ません。仕様としか言いようがありません。
ご回答ありがとうこざいます。
ご指摘のように各々のマクロモジュールにヘッダー設定の一文を入れて対処しておりました。
Private Subは他のモジュールから参照できないとのことなので、「ThisWorkbook」のPrivate Subは、エクセルを直接操作する場合に動作するのではないか、という結論に達しました。
いろいろと教えていただき参考になりました。ありがとうございました。
No.1
- 回答日時:
こんにちは。
試してみましたが、「実行されない」という再現性が得られませんので、コードを出していただいたほうがよいですね。
Private Sub Workbook_BeforePrint(Cancel As Boolean)
というものは、ActiveSheet を対象としていますから、その食い違いがあるのではないかと思います。
この回答への補足
Wendy02様
早速のご回答ありがとうござます。
コードは以下のとおりです。
「ThisWorkbook」
Private Sub Workbook_BeforePrint(cancel As Boolean)
ActiveSheet.PageSetup.LeftFooter = "&14&""Arial""NO." & Format(Now(), "0.000")
End Sub
「Module1」
Sub Macro1()
ActiveWindow.SelectedSheets.PrintPreview
End Sub
Private Subは、現在の日付を小数点3位までのシリアル値にして印刷前に左フッターにセットするものです。(表示例.「No.40110.571」)
エクセルツールバーの印刷ボタン、プレビューボタン、メニューから操作すると現在のシリアル値が表示されますが、
Module1のマクロにより印刷プレビューをすると表示されません。(事前に印刷ボタン等でフッターにセットされている場合は、現在に更新されません。)
以上のような状況です。
ご教授よろしくお願いいたします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
EXCEL VBA 印刷プレビューダイアログのボタン操作を判定したい
Visual Basic(VBA)
-
EXCELで特定のセルに表示された項目をヘッダーやフッターに出力するには
Excel(エクセル)
-
Excel VBA の印刷後の判定
Excel(エクセル)
-
-
4
エクセル2010でのBeforePrintイベント
その他(Microsoft Office)
-
5
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
6
エクセルで、ヘッダーに特定セル内容を指定して印刷したい
Excel(エクセル)
-
7
セルの文字を「印刷時だけ非表示」にしたいです。
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ローマ字→カタカナへ変換(エク...
-
マクロ 実行ボタンを押さずに...
-
EXCEL 複数のシートの同一の位...
-
EXCELのセルへ、デジタル時計を...
-
エラーになってないのにVBA...
-
マクロを実行した日付をセルに...
-
Excelのワークシート上に検索窓...
-
モジュール内のマクロを全て実...
-
エクセルのマクロ機能で前のシ...
-
Excelの改ページ 同シート内で...
-
Excel VBA のdebug(F8キー) が...
-
TeraTermのマクロについて
-
Excelを開いた時に表示さ...
-
Wordのアンケート用紙に通し番...
-
複数ファイルにある特定のシー...
-
エクセル グラフの軸の最小値最...
-
エクセルのマクロボタンがどん...
-
「yes」なら実行させて「no」な...
-
ThisWorkbook.Pathを実行すると...
-
開いているフォルダを全て閉じ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ローマ字→カタカナへ変換(エク...
-
マクロ 実行ボタンを押さずに...
-
EXCELのセルへ、デジタル時計を...
-
複数ファイルにある特定のシー...
-
エクセル グラフの軸の最小値最...
-
Excel VBA のdebug(F8キー) が...
-
エラーになってないのにVBA...
-
Wordの画面を左右にスクロール...
-
EXCEL 複数のシートの同一の位...
-
エクセルのマクロ機能で前のシ...
-
Excelを開いた時に表示さ...
-
エクセルで複数のシートをまと...
-
エクセルでマクロ実行中に任意...
-
ワードからエクセルへ貼り付け...
-
VBAでEXCELに埋め込んだPDFを開...
-
Wordで「原稿用紙○枚」を換算す...
-
Excelマクロでオプションボタン...
-
マクロを実行した日付をセルに...
-
TeraTermのマクロについて
-
Accessのクエリを実行するショ...
おすすめ情報