
EXCEL VBAでシートの印刷アプリを作っています。
印刷前にプレビューを見せたいので印刷プレビューダイアログを呼び出していますが、
印刷プレビュー後、実際に印刷に移る前に、ユーザ向けメッセージを出したいのです。
印刷プレビュー画面には「印刷」と「閉じる」ボタンがありますが
「印刷ボタン」を押した場合はVBA側でこう処理、
「閉じるボタン」を押した場合はこう処理
とVBA側で判定することは可能でしょうか。
ご指導お願いします。
参照用コード(思った通りに動作していませんが・・・・)
Private Sub Print_Sheet()
Dim i As Integer
Dim st As Worksheet
Set st = Worksheets("印刷シート")
i = MsgBox("印刷前にプレビューを表示しますか?", vbYesNo, "シート印刷")
If i = 6 Then
st.PrintPreview
End If
i = MsgBox("印刷を開始しますか?" & vbCr & vbLf & "印刷する場合は、プリンターの確認をしてください", _
vbYesNo, "シート印刷")
If i <> 6 Then
Exit Sub
Else
st.PrintOut
End If
Set st = Nothing
End Sub
上記のコードだと、印刷プレビューダイアログにおいて、
「閉じる」ボタンを押した場合はそのまま再度MsgBoxで印刷するか否かを聞きに行くので良いのですが
「印刷」ボタンを押した場合は印刷プレビューダイアログから印刷ダイアログが呼ばれそのまま印刷ができてしまいます。
(で、下のフローに流れてPrintOutメソッドで再度印刷してしまう)
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
ANo.1です。
よく見たら質問の回答とは違いました。
質問の中のプログラムに、リンク先の「プレビューのボタンを使用不可にする」のプログラムを組み込んで、
st.PrintPreview
の部分を、
kEnablePreview st
にすると、質問中のプログラムがそのままでいいみたいです。
と言う事です。
No.2
- 回答日時:
余り自信ないが
Sub test01()
Dim a
a = Application.Dialogs(xlDialogPrintPreview).Show
MsgBox a
End Sub
を実行すると
閉じるをクリックー>FALSE
印刷したーー>TRUE
が返る(になる)。
ただ印刷の終った後しか出てこないが。
これが使えないでしょうか。
No.1
- 回答日時:
googleで探してみたら、こんなのありましたが・・・
http://homepage2.nifty.com/kmado/ke_m9.htm
E00M089(Excel2002) プレビューのボタンを使用不可にする
Excel2000で試したらできました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 数式が消える 1 2023/03/19 16:55
- Excel(エクセル) Excelであるシートだけ印刷できない 1 2022/04/01 09:04
- Excel(エクセル) エクセルのマクロで複数シートを両面印刷するには? 2 2022/12/08 23:23
- Visual Basic(VBA) Accessフォームで全レコードを指定のExcelのセルへ転送し印刷する方法について 2 2022/09/08 18:23
- Visual Basic(VBA) エクセル365のVBAで困っています。どう修正したらよいか添削をお願いします 2 2023/05/03 17:35
- Visual Basic(VBA) VBAで不特定枚数印刷をしたいです。 4 2022/08/02 07:30
- Excel(エクセル) エクセルシートのPDFでの保存 2 2022/09/06 13:05
- Excel(エクセル) エクセルの印刷マクロについて質問があります。 現在、下記のマクロで印刷しています。Sheet1のD6 5 2023/06/12 10:59
- Excel(エクセル) 【Excel】複数シートがあるエクセルデータで片面印刷と両面印刷設定がシートごとに入 1 2023/03/10 15:25
- Google Maps アイフォンのグーグルフォトアプリで自宅の印刷機で印刷する場合どこを押すと家の印刷機で印刷できるでしょ 1 2022/04/13 03:56
このQ&Aを見た人はこんなQ&Aも見ています
-
エクセルのマクロで印刷プレビューを閉じる方法
Excel(エクセル)
-
Excel VBA の印刷後の判定
Excel(エクセル)
-
エクセルのマクロ
Excel(エクセル)
-
-
4
印刷をキャンセル
Excel(エクセル)
-
5
印刷ダイアログを表示させない方法
Visual Basic(VBA)
-
6
VBAで印刷の成功判定
Visual Basic(VBA)
-
7
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
8
ユーザーフォームを表示中にシートの操作をさせるには
Excel(エクセル)
-
9
数式による空白を無視して最終行を取得するマクロ
Excel(エクセル)
-
10
イベントプロシージャ 印刷が終わったあと…
Visual Basic(VBA)
-
11
VBAでブックを非表示で開いて処理して閉じる方法
Excel(エクセル)
-
12
印刷ダイアログを表示させたくない
Visual Basic(VBA)
-
13
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
14
【Excel VBA】プリンタのプロパティダイアログの表示
Excel(エクセル)
-
15
印刷プレビュー表示後ユーザーフォームが閉じません。
Visual Basic(VBA)
-
16
マクロ実行後に別シートの残像が残り、オブジェクトが見えなくなる
Visual Basic(VBA)
-
17
Excel VBA 「印刷中」メッセージを非表示にしたい
その他(プログラミング・Web制作)
-
18
マクロ BeforePrintイベントがマクロ構文上のprintの前に実行できない
Excel(エクセル)
-
19
マクロでプリンタ、用紙、給紙先を指定するには?
Excel(エクセル)
-
20
エクセルVBAでプリンタプロパティを操作したい
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
excelにて各シートの総印刷ペー...
-
印刷プレビュー表示後ユーザー...
-
Excel VBAで文字列の可視長を得...
-
ACCESS VBA レポートプレビュー...
-
ページ内にスクロールバーのあ...
-
ページ内の画像印刷について
-
VBAで Ctrl + Shift + F2が使え...
-
PDFファイルを開かずに印刷...
-
ヘッダやフッタの印刷をしたくない
-
ACCESSで印刷プレビューをした...
-
EXCEL VBA 印刷プレビューダイ...
-
印刷範囲の指定はできますか?
-
googleマップのストリートビュ...
-
outlook 文字を揃えたい。tab...
-
マイクロ(μ)の文字を半角で出...
-
cssファイルの名称付け
-
教えてください。
-
似ているフォント(Win⇔Mac)
-
入力規則のリストの文字の大き...
-
テキストエディタmiの表示文字...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
EXCEL VBA 印刷プレビューダイ...
-
PDFファイルを開かずに印刷...
-
Excel VBAで文字列の可視長を得...
-
ページ内にスクロールバーのあ...
-
EXCEL VBAでPDFファイルを開い...
-
ACCESS VBA レポートプレビュー...
-
ヘッダやフッタの印刷をしたくない
-
phpについてですかね、印刷ボタ...
-
excelにて各シートの総印刷ペー...
-
印刷時ヘッダーとフッターを挿入
-
コマンドプロンプトでフォルダ...
-
インラインフレームの印刷について
-
ページ内の画像印刷について
-
印刷プレビュー表示後ユーザー...
-
VBAで印刷ページ最終行にページ...
-
C# 印刷可能領域と余白範囲...
-
エクセルVBAで印刷する書式をク...
-
サイト全体を縮小して印刷する...
-
Excel VBA 「印刷中」メッセー...
-
横に長いWeb画面を一枚の用紙に...
おすすめ情報