
下記のコードで印刷プレビューが表示された後,UserForm3が閉じるようにしてありましたができなくなりました。プレビューの閉じるボタンをクリックするとUserForm3一緒に閉じます。解決策がありましたらお願いします。勉強不足でわかりませんので。
Sub 印刷範囲()
Application.ScreenUpdating = False
Dim ret As Integer
ret = MsgBox("印刷範囲を、" & ActiveSheet.Range("B59").Value & "勤務表上に" _
& "表示します。 よろしいですか?", _
vbOKCancel + vbQuestion, "メイン処理")
Select Case ret
Case vbOK
UserForm3.Show vbModeless
UserForm3.Repaint
With Worksheets("メイン")
.PageSetup.CenterHorizontally = True
.PageSetup.CenterVertically = True
.PrintPreview
End With
Unload UserForm3
End Select
Application.ScreenUpdating = True
End Sub
No.2ベストアンサー
- 回答日時:
質問者様のコードと補足を見比べ、さらにExcel2003で動作させてみましたが、コードの動作はまさしく今のご希望に合わないものでしかありません。
以前は今とは異なるご希望に添った動作だったとのことですが、おそらくコードそのものが提示いただいた今のものと異なっていたのではないでしょうか。
(もしかするとUserForm3のプロパティを変更すればいいのかもしれませんが、申し訳ありませんが私はこのあたりがあまりよくわからないので、オブジェクト名とCaption以外は規定値で使っています)
動作を簡単に説明します。
MsgBoxのOKをクリックすると、UserForm3.Show vbModelessでUserForm3が表示されます。
UserForm3の表示にはvbModelessを指定しているので、フォームが表示されたまま直ちに次の印刷プレビューに行きます。
このとき、ユーザーフォームは色が薄くなって操作できないまま最前面に居座るのですね。これは動作させて初めて知りました。
で、印刷プレビューを閉じると次のUnload UserForm3でUserForm3が消滅します。
ご希望の動作とするには、.PrintPreviewを実行する前にUnload UserForm3あるいはUserform3.Hideを実行すればいいと思います。
ただし、質問文中に提示いただいたコードではUserForm3の表示の直後に印刷プレビューを行っていますので、UserForm3は一瞬だけ表示されてすぐ消えることになります。
おそらく質問者様が実際に使用されているコードでは、UserForm3.Show vbModelessと.PrintPreviewの間に何かユーザーフォームを用いた処理を行っているのではないでしょうか。そうであればこのコードで一瞬だけ表示されてすぐ消えることについては問題ありません。
ご丁寧にありがとうございます。
確かにPrintPreviewを実行する前にUnload UserForm3を実行するようにコードを変更したら事なきを得ました。まだまだあれこれ勉強不足ですいません。人に教えを請うのも勉強の1つかと思います。
No.1
- 回答日時:
申し訳ありませんが状況が今ひとつ理解できませんのでもうちょっと説明いただけないでしょうか。
質問文中のコードで、以前は印刷プレビューを手動で閉じるとUserForm3が自動的に閉じたが、今は印刷プレビューを手動で閉じてもUserForm3が閉じずに開いたまま、ということでしょうか?
この回答への補足
シートにボタンを作成してあり以前はクリックすると印刷プレビューが表示されるとUserForm3は自動で閉じましたが、今は、印刷プレビューが表示サれてもUserForm3は閉じず表示されたままになり表示サれているプレビューの閉じるボタンをクリックすると一緒に閉じる状況です。言葉足らずで申し訳ありません。
補足日時:2012/10/24 12:06お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 【追加】ファイルを閉じてダイアログで保存した時だけ処理の実行をする 3 2022/03/23 15:43
- Visual Basic(VBA) 【Excel VBA】自動メール送信の機能追加 5 2022/09/29 12:53
- Visual Basic(VBA) 数式が消える 1 2023/03/19 16:55
- Visual Basic(VBA) 【変更】ファイルを閉じてダイアログで保存した時、更新したシートだけの処理の実行をする 5 2022/03/26 18:31
- Excel(エクセル) 【マクロ】スクショ印刷がうまく動かない件 5 2022/12/06 17:37
- Visual Basic(VBA) ユーザーフォーム「frm_基本❶」を立ち上げると新規で入力する行数を右下のNoとして表示しています。 1 2023/03/16 19:02
- Excel(エクセル) 【マクロ】webアドレスにて指定されたCSVファイル【excelソフト表示】を印刷する件 1 2023/02/15 01:52
- Visual Basic(VBA) VBA Userformで一部別シートに転記がしたいのですが 2 2023/05/24 13:08
- Excel(エクセル) エクセルの印刷マクロについて質問があります。 現在、下記のマクロで印刷しています。Sheet1のD6 5 2023/06/12 10:59
- Excel(エクセル) 2つのVBAを一緒にしたら機能しなくなりました(エクセル) 7 2022/06/02 12:41
このQ&Aを見た人はこんなQ&Aも見ています
-
エクセルのマクロで印刷プレビューを閉じる方法
Excel(エクセル)
-
EXCEL VBA 印刷プレビューダイアログのボタン操作を判定したい
Visual Basic(VBA)
-
VBAでエクセルシートを更新(リフレッシュ)する方法を教えて下さい。
Excel(エクセル)
-
-
4
エクセルのマクロ
Excel(エクセル)
-
5
EXCELで特定のセルに表示された項目をヘッダーやフッターに出力するには
Excel(エクセル)
-
6
Excel VBA の印刷後の判定
Excel(エクセル)
-
7
エクセルのラベルの値(文字列)を垂直方向で中央揃えにするには?
Excel(エクセル)
-
8
ユーザーフォームに入力したデータを保持する方法
Visual Basic(VBA)
-
9
エクセルVBA 画像を貼り付けるセル位置を指定する方法
Excel(エクセル)
-
10
セルの文字を「印刷時だけ非表示」にしたいです。
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ACCESS VBA レポートプレビュー...
-
EXCEL VBA 印刷プレビューダイ...
-
googleマップのストリートビュ...
-
ホームページをA4で印刷できる...
-
IE7の印刷サイズの設定について
-
印刷用スタイルシートの無効化...
-
WEBでのフォーム入力後の印刷
-
サイト全体を縮小して印刷する...
-
ページの一部が消える印刷プレ...
-
印刷ダイアログの印刷ボタンを...
-
印刷用スタイルシートがXPで反...
-
(できる方)エクセルVBA印刷済...
-
CSSを使用しているページで印刷...
-
Excel VBAで文字列の可視長を得...
-
印刷時に2ページ以上になる時CS...
-
Excel VBA 「印刷中」メッセー...
-
印刷時ヘッダーとフッターを挿入
-
EXCEL VBAでPDFファイルを開い...
-
IE11でCtrl+Pを禁止する方法に...
-
webの印刷で、デフォルトでA3を...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
EXCEL VBA 印刷プレビューダイ...
-
PDFファイルを開かずに印刷...
-
Excel VBAで文字列の可視長を得...
-
ページ内にスクロールバーのあ...
-
ACCESS VBA レポートプレビュー...
-
EXCEL VBAでPDFファイルを開い...
-
phpについてですかね、印刷ボタ...
-
ヘッダやフッタの印刷をしたくない
-
excelにて各シートの総印刷ペー...
-
印刷時ヘッダーとフッターを挿入
-
コマンドプロンプトでフォルダ...
-
インラインフレームの印刷について
-
ページ内の画像印刷について
-
印刷プレビュー表示後ユーザー...
-
C# 印刷可能領域と余白範囲...
-
VBAで印刷ページ最終行にページ...
-
エクセルVBAで印刷する書式をク...
-
ACCESSで印刷プレビューをした...
-
サイト全体を縮小して印刷する...
-
横に長いWeb画面を一枚の用紙に...
おすすめ情報