
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で質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
エクセルのマクロで印刷プレビューを閉じる方法
Excel(エクセル)
-
Excel VBA の印刷後の判定
Excel(エクセル)
-
エクセルのマクロ
Excel(エクセル)
-
-
4
VBAで印刷の成功判定
Visual Basic(VBA)
-
5
ユーザーフォームを表示中にシートの操作をさせるには
Excel(エクセル)
-
6
印刷をキャンセル
Excel(エクセル)
-
7
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
8
Excel VBA 「印刷中」メッセージを非表示にしたい
その他(プログラミング・Web制作)
-
9
印刷ダイアログを表示させない方法
Visual Basic(VBA)
-
10
【Excel VBA】プリンタのプロパティダイアログの表示
Excel(エクセル)
-
11
エクセルVBAで手差しトレイを指定させたい。
Excel(エクセル)
-
12
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
13
VBAでブックを非表示で開いて処理して閉じる方法
Excel(エクセル)
-
14
数式による空白を無視して最終行を取得するマクロ
Excel(エクセル)
-
15
印刷プレビュー表示後ユーザーフォームが閉じません。
Visual Basic(VBA)
-
16
マクロ実行後に別シートの残像が残り、オブジェクトが見えなくなる
Visual Basic(VBA)
-
17
Excel-VBA>コントロールをグレイアウトするには?
Excel(エクセル)
-
18
テキストボックス(VBA)でEnterを押したときに作動するマクロ
Access(アクセス)
-
19
ExcelVBAのユーザーフォームの中に線を引きたい
Visual Basic(VBA)
-
20
EXCEL VBAで全選択範囲の解除
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
PDFファイルを開かずに印刷...
-
EXCEL VBAでPDFファイルを開い...
-
ページ内にスクロールバーのあ...
-
Excel VBAで文字列の可視長を得...
-
ブラウザから定型フォームを印...
-
サイト全体を縮小して印刷する...
-
コマンドプロンプトでフォルダ...
-
Accessレポートでの改ページ
-
EXCEL VBA 印刷プレビューダイ...
-
ラジオボタンをチェック済みの...
-
VBのDataGridView印刷
-
印刷プレビュー表示後ユーザー...
-
印刷用スタイルシートの無効化...
-
outlook 文字を揃えたい。tab...
-
マイクロ(μ)の文字を半角で出...
-
CSSが全く分かりません、お助け...
-
教えてください。
-
英語版OSでの遊明朝、游ゴシック
-
コピーライト記号の表示が小さい
-
MsgBoxについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
PDFファイルを開かずに印刷...
-
EXCEL VBA 印刷プレビューダイ...
-
ページ内にスクロールバーのあ...
-
Excel VBAで文字列の可視長を得...
-
EXCEL VBAでPDFファイルを開い...
-
横に長いWeb画面を一枚の用紙に...
-
excelにて各シートの総印刷ペー...
-
コマンドプロンプトでフォルダ...
-
ACCESS VBA レポートプレビュー...
-
サイト全体を縮小して印刷する...
-
OpenOffice Calc basic で印刷...
-
VBAで Ctrl + Shift + F2が使え...
-
印刷時に2ページ以上になる時CS...
-
Accessレポートでの改ページ
-
TEXTAREAの印刷について
-
Excel VBA 「印刷中」メッセー...
-
インラインフレームの印刷について
-
phpについてですかね、印刷ボタ...
-
ヘッダやフッタの印刷をしたくない
-
VB.netで印刷
おすすめ情報