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
印刷ダイアログを表示させない方法
Visual Basic(VBA)
-
8
EXCELで特定のセルに表示された項目をヘッダーやフッターに出力するには
Excel(エクセル)
-
9
VBAのコマンドボタンの文字列の改行方法は?
Visual Basic(VBA)
-
10
マクロで印刷→セルの値から部数変更するには
Excel(エクセル)
-
11
印刷プレビュー表示後ユーザーフォームが閉じません。
Visual Basic(VBA)
-
12
メッセージボックスに表示する文字を大きくしたい
Excel(エクセル)
-
13
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
14
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
15
VBA エンターキーでイベントに入りたい。
PowerPoint(パワーポイント)
-
16
ユーザーフォームを表示中にシートの操作をさせるには
Excel(エクセル)
-
17
EXCEL VBA BeforePrintイベント時のプレビューについて
Excel(エクセル)
-
18
マクロ実行時 ウィンドウで実行するか確認する
Excel(エクセル)
-
19
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
20
エクセルマクロで、別のブックが開いているかを判定したいのですが。
その他(Microsoft Office)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
PDFファイルを開かずに印刷...
-
EXCEL VBA 印刷プレビューダイ...
-
コマンドプロンプトでフォルダ...
-
Excel VBAで文字列の可視長を得...
-
ページ内にスクロールバーのあ...
-
TEXTAREAの印刷について
-
EXCEL VBAでPDFファイルを開い...
-
CSSのfloatでレイアウトしたペ...
-
印刷プレビュー表示後ユーザー...
-
マクロで、機密印刷の設定をす...
-
C# 印刷可能領域と余白範囲...
-
ACCESS VBA レポートプレビュー...
-
サイト全体を縮小して印刷する...
-
印刷時に2ページ以上になる時CS...
-
インラインフレームの印刷について
-
excelにて各シートの総印刷ペー...
-
Excel VBA 「印刷中」メッセー...
-
OpenOffice Calc basic で印刷...
-
印刷用スタイルシートの無効化...
-
Accessレポートでの改ページ
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
EXCEL VBA 印刷プレビューダイ...
-
PDFファイルを開かずに印刷...
-
Excel VBAで文字列の可視長を得...
-
OpenOffice Calc basic で印刷...
-
EXCEL VBAでPDFファイルを開い...
-
Excel VBA 「印刷中」メッセー...
-
ページ内の画像印刷について
-
サイト全体を縮小して印刷する...
-
ページ内にスクロールバーのあ...
-
excelにて各シートの総印刷ペー...
-
ヘッダやフッタの印刷をしたくない
-
コマンドプロンプトでフォルダ...
-
C# 印刷可能領域と余白範囲...
-
ACCESS VBA レポートプレビュー...
-
Accessレポートでの改ページ
-
印刷時ヘッダーとフッターを挿入
-
PageBreaks.Countと印刷範囲の...
-
印刷プレビュー表示後ユーザー...
-
phpについてですかね、印刷ボタ...
-
印刷するときにテキストボック...
おすすめ情報