
エクセルのマクロで「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で質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 【マクロ】スクショ印刷がうまく動かない件 5 2022/12/06 17:37
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/07/13 12:31
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2022/10/13 08:41
- Excel(エクセル) 【VBAファイル移動】2つのマクロを順に実行。1つ目のマクロが実行不可⇒2つ目が実行不可となる件 2 2022/07/29 12:17
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 1 2023/08/10 14:24
- Visual Basic(VBA) 【Excel VBA】自動メール送信の機能追加 5 2022/09/29 12:53
- Excel(エクセル) エクセル VBA実行中のApplication.ScreenUpdatingについて 3 2023/07/13 21:06
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/10 11:34
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 1 2023/01/23 11:02
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/02/11 11:05
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ローマ字→カタカナへ変換(エク...
-
複数のシートにまたがるマクロ...
-
VBAで複数検索、AdvancedFilter
-
UWSCの簡単なキーマクロなので...
-
一部マクロを変更したいので教...
-
Excel VBA xlDialogSort引数リ...
-
エクセルのマクロ機能で前のシ...
-
エクセルでマクロを実行したい...
-
エクセルデータの縦横変換について
-
Excelのワークシート上でコンボ...
-
マクロの記録機能を使って作成...
-
【ExcelVBA】マクロボタンについて
-
古いエクセルも危険ですか
-
エクセル・マクロのModuleにつ...
-
マクロのなくす方法を教えてく...
-
エクセルのコメントの書式
-
マクロと次のマクロ実行の間の...
-
エクセルマクロについて
-
ます目計算か表計算ソフト
-
Word2010でマクロをショートカ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ローマ字→カタカナへ変換(エク...
-
マクロ 実行ボタンを押さずに...
-
Excelを開いた時に表示さ...
-
Excel VBA のdebug(F8キー) が...
-
エラーになってないのにVBA...
-
EXCELのセルへ、デジタル時計を...
-
複数ファイルにある特定のシー...
-
エクセル グラフの軸の最小値最...
-
モジュール内のマクロを全て実...
-
Wordの画面を左右にスクロール...
-
ワードからエクセルへ貼り付け...
-
エクセルのマクロ機能で前のシ...
-
EXCEL 複数のシートの同一の位...
-
Excelマクロでオプションボタン...
-
エクセルで複数のシートをまと...
-
VBAでEXCELに埋め込んだPDFを開...
-
【Excel VBA】エラー番号400
-
EXCEL2000 VBA マクロ実行中に...
-
エクセルでマクロ実行中に任意...
-
Wordで「原稿用紙○枚」を換算す...
おすすめ情報