VBA初心者です。
イベントプロシージャ 「beforeprint」 を使用して
印刷時、不要なオートシェイプを不可視にしています。
~~ visible = false
にすると、確かに印刷時に消えてくれるのですが
印刷が終わった後も消えたままなのです。
印刷が終わったあと、オートシェイプを再可視化するには
どうしたらよろしいでしょうか??
可視化に限らず、印刷後(もしくは印刷プレビューを閉じた後)
なんらかの処理を加える方法でもかまいません。
ヒントだけでもいいので、なにとぞアドバイスの程よろしくお願いいたします!
No.1ベストアンサー
- 回答日時:
こんばんは。
以下のように、元にもどすのに、ほんのちょっと時間差を設ければよいはずです。
印刷中は、印刷バッファに送られますから、オートシェイプは、ない状態のままですし、シートは待機モード中です。その間に、命令を送ってしまえばよいと思います。なお、こういう場合、Excelのバージョンによっては違ったアイデアもあるはずです。
以下の3秒でよいのかは、調整してください。
'//ThisWorkbook モジュール
Private Sub Workbook_BeforePrint(Cancel As Boolean)
Dim sp As Shape
For Each sp In ActiveSheet.Shapes
sp.Visible = msoFalse
Next
ThisWorkbook.OnTimeMethod
End Sub
Sub OnTimeMethod()
Application.OnTime Now + TimeValue("00:00:03"), "ThisWorkbook.TestExec"
End Sub
Sub TestExec()
Dim sp As Shape
For Each sp In ActiveSheet.Shapes
sp.Visible = msoTrue
Next
End Sub
この回答への補足
申し訳ありません、beforeprintの方は実行されるのですが、
その後のTestExecの方が実行されません。
timevalueを変えてみたのですが、元にもどらないままになってしまいます…
エクセルのバージョンが2001なのですが、何か関係あるのでしょうか…?
ご回答いただきありがとうございます。
OnTimeMethodというのははじめて知りました!
時間差をつけられるというのはとても画期的な機能ですね。
内容を勉強して、早速試してみたいと思います。
No.2
- 回答日時:
オートシェイプを印刷したくないだけなら、イベントを使わずとも
シェイプ右クリックメニューから[オートシェイプの書式設定]-[プロパティ]で
「オブジェクトを印刷する」のチェックボックスを外すと印刷対象外にする事ができます。
もしコードで対応したいなら
Sheets("Sheet1").Shapes("シェイプ名").DrawingObject.PrintObject = False
選択して実行する場合は
Selection.PrintObject = False
手動でも良いので .PrintObject = False に設定しておいて、
逆に、印刷したい時だけ .PrintObject = True にしても良いかと。
この回答への補足
こちらから失礼いたします。end-uさま申し訳ありません。
>WindFallerさま
下記補足にて、ontime以降が実行されないと書きましたが、私の手違いでした。
WindFallerさまのご回答で、無事実行されましたことをご報告させていただきます。
まことにありがとうございました。本当に助かりました^^
ご回答ありがとうございます。
今回はオブジェクトを印刷したくないという以外に、セルの非表示・グラフの移動といった
印刷時のレイアウト要素が強いので、オブジェクトを印刷対象外にするだけでは対応できない
現状があります。
しかしend-uさまのアドバイスは非常に勉強になりました。
特にオブジェクトを印刷対象外にすることができるというのは知りませんでした。
このツールを活用していきたいと思います!^^
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excelであるシートだけ印刷できない 1 2022/04/01 09:04
- Excel(エクセル) エクセルの印刷範囲をページ単位で可変にする方法 3 2022/05/23 13:04
- Visual Basic(VBA) DisplayAlertsブロパティで ”実行時エラー424オブジェクトが必要です” 5 2022/05/15 18:02
- Visual Basic(VBA) 数式が消える 1 2023/03/19 16:55
- UNIX・Linux Ubuntu22.04、nanoエディタの使い方について 2 2022/10/24 19:50
- その他(パソコン・スマホ・電化製品) Webページ印刷時にヘッダー・フッターをつけたい 1 2022/04/25 21:35
- Excel(エクセル) 【Excel】複数シートがあるエクセルデータで片面印刷と両面印刷設定がシートごとに入 1 2023/03/10 15:25
- Visual Basic(VBA) VBAで不特定枚数印刷をしたいです。 4 2022/08/02 07:30
- プリンタ・スキャナー モノクロ印刷しかしてないのにカラーインクが減るのは何故? 6 2022/09/29 23:17
- PDF 2つのPDFを重ねる方法はありますか? 4 2023/01/30 14:04
このQ&Aを見た人はこんなQ&Aも見ています
-
新NISA制度は今までと何が変わる?非課税枠の拡大や投資対象の変更などを解説!
少額から投資を行う人のための非課税制度であるNISAが、2024年に改正される。おすすめの銘柄や投資額の目安について教えてもらった。
-
Excel VBA の印刷後の判定
Excel(エクセル)
-
EXCEL VBA 印刷プレビューダイアログのボタン操作を判定したい
Visual Basic(VBA)
-
エクセルのマクロで印刷プレビューを閉じる方法
Excel(エクセル)
-
-
4
印刷後メッセージボックスを表示したい
Access(アクセス)
-
5
エクセルのマクロ
Excel(エクセル)
-
6
マクロを使って、シート印刷完了時にシートに”完了”マークをつけたいのですが
Visual Basic(VBA)
-
7
WORDのVBAで印刷プレビューの制御方法
Word(ワード)
-
8
VBAで印刷スプール終了の判定をする
Visual Basic(VBA)
-
9
印刷プレビュー表示後ユーザーフォームが閉じません。
Visual Basic(VBA)
-
10
マクロ実行後に別シートの残像が残り、オブジェクトが見えなくなる
Visual Basic(VBA)
-
11
印刷要求順番と印刷出力順番が違う。
Visual Basic(VBA)
-
12
テキストボックス(VBA)でEnterを押したときに作動するマクロ
Access(アクセス)
-
13
ACCESS 「パラメータの入力」を消したい!!
Access(アクセス)
-
14
印刷をキャンセル
Excel(エクセル)
-
15
Access レポート印刷時のイベントについて
Access(アクセス)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
印刷要求順番と印刷出力順番が...
-
イベントプロシージャ 印刷が...
-
VBscriptでPDFファイルを直接印...
-
webページの印刷制限について
-
PDFファイルを印刷し終了するには
-
vbaでPDFファイルが印刷されない
-
プリンタの印刷ジョブを削除し...
-
VB.NET+ActiveReports で印刷...
-
VB6でのネットワークプリン...
-
ActiveReportsを使って[印刷ダ...
-
VBAで不特定枚数印刷をしたいで...
-
VBからのプリンタ制御について
-
オートメーションエラー(214741...
-
Eclipseを使ってソースを印刷し...
-
VB2005から複合機を使い自動FAX...
-
Javaのソースコードをカラーで...
-
.NETプログラムからの印刷
-
VB2008で0ページの印刷ジョブを...
-
VB6上から印刷ダイアログを表示...
-
ファイルのパス指定での印刷方法
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
印刷ダイアログを表示させない方法
-
印刷要求順番と印刷出力順番が...
-
プリンターを指定して印刷するには
-
vbaでPDFファイルが印刷されない
-
VBAで不特定枚数印刷をしたいで...
-
VB.NET+ActiveReports で印刷...
-
ACCESSで設定した帳票の用紙サ...
-
PHPでPDFファイルの直接印刷
-
PDFファイルを印刷し終了するには
-
印刷ダイアログを表示させたくない
-
VBからプリンタに出力する時に...
-
EXCELファイルの複数ダウンロー...
-
webページの印刷制限について
-
VBscriptでPDFファイルを直接印...
-
A4の2枚をA3の1枚にする編集方法?
-
VBSでExcelファイル印刷時のプ...
-
リンク先のページを印刷したい
-
2回以上PDFをコピーや印刷がで...
-
VBAにて指定したセルをプルダウ...
-
ActiveReportsを使って[印刷ダ...
おすすめ情報