エクセルのマクロで「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も見ています
-
プロが教える店舗&オフィスのセキュリティ対策術
中・小規模の店舗やオフィスのセキュリティセキュリティ対策について、プロにどう対策すべきか 何を注意すべきかを教えていただきました!
-
Excel VBA の印刷後の判定
Excel(エクセル)
-
EXCELで特定のセルに表示された項目をヘッダーやフッターに出力するには
Excel(エクセル)
-
印刷をキャンセル
Excel(エクセル)
-
-
4
エクセル2010でのBeforePrintイベント
その他(Microsoft Office)
-
5
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
6
Excelシートの保護時にデータの並び替え
その他(Microsoft Office)
-
7
VBA シートをコピーする際に Copyメソッドは失敗しましたのエラーが出てしまいます
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ローマ字→カタカナへ変換(エク...
-
エラーになってないのにVBA...
-
EXCELのセルへ、デジタル時計を...
-
マクロ 実行ボタンを押さずに...
-
Excelのワークシート上に検索窓...
-
Excel VBA のdebug(F8キー) が...
-
【Excel VBA】エラー番号400
-
Excelマクロでオプションボタン...
-
Excelを開いた時に表示さ...
-
複数ファイルにある特定のシー...
-
Accessのマクロで「yes、no」の...
-
ワードからエクセルへ貼り付け...
-
Wordの画面を左右にスクロール...
-
マクロ ブックをマクロなしでコ...
-
TeraTermのマクロについて
-
EXCEL 複数のシートの同一の位...
-
エクセルで土日列の非表示方法...
-
マクロ実行後元に戻すことは
-
開いているフォルダを全て閉じ...
-
エクセルで複数のシートをまと...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ローマ字→カタカナへ変換(エク...
-
複数ファイルにある特定のシー...
-
マクロ 実行ボタンを押さずに...
-
EXCELのセルへ、デジタル時計を...
-
Excelを開いた時に表示さ...
-
エラーになってないのにVBA...
-
Excel VBA のdebug(F8キー) が...
-
ワードからエクセルへ貼り付け...
-
エクセルのマクロ機能で前のシ...
-
Excelのワークシート上に検索窓...
-
モジュール内のマクロを全て実...
-
エクセル グラフの軸の最小値最...
-
EXCEL 複数のシートの同一の位...
-
エクセルで複数のシートをまと...
-
【Excel VBA】エラー番号400
-
Excelマクロでオプションボタン...
-
Wordの画面を左右にスクロール...
-
マクロ ブックをマクロなしでコ...
-
Wordで「原稿用紙○枚」を換算す...
-
AccessのテーブルデータをExcel...
おすすめ情報