VBAにて指定したセルをプルダウンで別シートリストから選択できるようにして、一括印刷をかけるコードになります。
このコードの意味を教えて下さい。
いつもこれを使って印刷してるのですが、時折記入ミスに気付かぬまま印刷をかけ途中で止める事が出来ずに最後まで印刷してしまう事があり、途中で止めるコードの書き方を知りたいです。
Sub 印刷()
Dim c As Range
Dim Ws As Worksheet
Set Ws = Sheets("実績表紙")
For Each c In Sheets("データ").Range("A2:A102")
Ws.Range("c4").Value = c.Value
DoEvents
Ws.PrintOut
Next
End Sub
No.3ベストアンサー
- 回答日時:
確認していませんが、以下では如何でしょうか?
1つ1つの印刷の間にWaitを持たせて、実際にプリンタで印刷されるタイミングと
だいたい合わせています。(以下だと4秒待ち)
各自の環境で1回あたりに掛かる印刷の時間は変わりますので、ご自身でWait時間は調整してください。
(多分、ESCで止まるはず。)
Sub 印刷()
Dim c As Range
Dim Ws As Worksheet
Set Ws = Sheets("実績表紙")
For Each c In Sheets("データ").Range("A2:A102")
Ws.Range("c4").Value = c.Value
Application.Wait Now() + TimeValue("00:00:04")
DoEvents
Ws.PrintOut
Next
End Sub
時間で調整出来るようなら、対応可能ですね。
DoEvents +グローバル変数を組み合わせたりするとキャンセル処理が簡単との記事を発見したので勉強して行く行くは出来る様になりたいと思います。
ありがとうございました。
No.5
- 回答日時:
こんばんは
すでに回答は出ていると思いますが、VBAの実行中に停止させる方法を何通りか解説したサイトがありますのでご参考までに。
https://www.excel-chunchun.com/entry/2019/01/13/ …
一方で、プリンター側にある程度のメモリがあるタイプの場合、停止させてもかなりの部分はすでに送られている可能性があります。
対策については、No4様がすでに言及なさっていますので省略します。
No.4
- 回答日時:
こんばんは、横から失礼します。
>できれば間違えに気付いた際にESCか何かのキーでマクロを止める事ができるのが1番良いのですが、、、
DoEvents ESCで止まらないかな。
しかし、ジョブにあるデータは印刷されてしまうと思いますが。
回答ではありませんが、ご質問のプロセスをAPIなどで実装出来たとしても
根本的な解決には成らないのではないでしょうか?
記入ミスを発見した時にはそれまでの印刷が実行されている訳ですし、、
記入ミスがあったら実行できないプロセスを追加するべきと考えます。
特に複数条件での一括処理などをする場合、入力や条件設定に問題ないかを
チェックするプロセスは、必須だと思いますので。
根本的な解決には、記入ミスを無くすのが1番なのですが、条件を指定する複雑なコードは書けないので、VBAを勉強して出来る様に頑張ります。
No.2
- 回答日時:
こんな感じは如何でしょうか?
10回ごとに確認メッセージが表示され、キャンセルするとVBAを停止します。
(多分、ちゃんと動くはず)
Sub 印刷()
Dim c As Range
Dim Ws As Worksheet
Dim i As Long
Set Ws = Sheets("実績表紙")
i = 0
For Each c In Sheets("データ").Range("A2:A102")
If i = 10 Then
If MsgBox("継続しますか?", vbOKCancel) = vbOK Then
i = 0
Else
Exit Sub
End If
End If
Ws.Range("c4").Value = c.Value
Ws.PrintOut
i = i + 1
Next
End Sub
おー確かに10回ごとに聞き返してくれると間違いに気付いた際はとても助かります。
でもほとんどの確率で間違えている事がなく、10回ごとに聞かれると印刷を終えるのに少し手間がかかってしまうので、できれば間違えに気付いた際にESCか何かのキーでマクロを止める事ができるのが1番良いのですが、、、
贅沢言って申し訳ありません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) ExcelVBAに関する質問 3 2023/02/17 10:47
- Visual Basic(VBA) エクセル365のVBAで困っています。どう修正したらよいか添削をお願いします 2 2023/05/03 17:35
- Excel(エクセル) 【マクロ】スクショ印刷がうまく動かない件 5 2022/12/06 17:37
- Excel(エクセル) vbaで列幅について 1 2022/11/15 08:31
- Visual Basic(VBA) VBAコードを張り付け後のエクセルの進め方 2 2023/02/07 18:24
- Visual Basic(VBA) Accessフォームで全レコードを指定のExcelのセルへ転送し印刷する方法について 2 2022/09/08 18:23
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 4 2023/05/26 10:43
- Excel(エクセル) エクセルシート中の全角英数字を半角に変換したい 4 2022/07/07 13:14
- Visual Basic(VBA) 数式が消える 1 2023/03/19 16:55
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 2 2022/06/10 11:06
このQ&Aを見た人はこんなQ&Aも見ています
-
性格の違いは生まれた順番で決まる?長男長女・中間子・末っ子・一人っ子の性格の傾向
同じ環境で生まれ育っても、生まれ順で性格は違うものなのだろうか。家庭教育研究家の田宮由美さんに教えてもらった。
-
Excel VBAプルダウンの値を変えながら2枚ずつ印刷する方法?
Excel(エクセル)
-
エクセルのドロップダウンリストについて
Windows Vista・XP
-
VBAで文字列を数値に変換したい
Excel(エクセル)
-
-
4
条件によって印刷するシートを変える方法 EXCEL-VBA
Excel(エクセル)
-
5
【EXCEL】【VBA】空欄は飛ばして処理する方法を教えて下さい。
Excel(エクセル)
-
6
VBAで特定の文字を探して隣のセルに色を付けたい
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBscriptでPDFファイルを直接印...
-
プリンターエラーの判定
-
VBでExcel印刷する時のプリンタ...
-
印刷要求順番と印刷出力順番が...
-
クリレポのプリンタ設定について
-
ACCESSで設定した帳票の用紙サ...
-
VBからのプリンタ制御について
-
Accessフォームで全レコードを...
-
VB6の印刷でメモリリーク
-
B4で手差しトレイから印刷(V...
-
VBAで印刷の成功判定
-
サーバーで作成したPDFを直接印...
-
印刷ダイアログを表示させたくない
-
MSAccessのVBAで印刷時の並べ替...
-
閲覧してるページを自動で印刷...
-
VBAでエクセルからワードへの差...
-
vba 時間の引き算 例えば 15:00...
-
Designer.vbは直接コードをいじ...
-
C#ソースをCSCファイルにてコン...
-
Visual Studio 「AnyCpu」について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
印刷ダイアログを表示させない方法
-
印刷要求順番と印刷出力順番が...
-
プリンターを指定して印刷するには
-
vbaでPDFファイルが印刷されない
-
VBAで印刷スプール終了の判定を...
-
PDFファイルを印刷し終了するには
-
VBからプリンタに出力する時に...
-
ACCESSで設定した帳票の用紙サ...
-
印刷ダイアログを表示させたくない
-
VBscriptでPDFファイルを直接印...
-
ActiveReportsを使って[印刷ダ...
-
VBAで印刷の成功判定
-
Accessフォームで全レコードを...
-
VB.NET+ActiveReports で印刷...
-
A4の2枚をA3の1枚にする編集方法?
-
Eclipseを使ってソースを印刷し...
-
EXCELファイルの複数ダウンロー...
-
VBAにて指定したセルをプルダウ...
-
VBでExcel印刷する時のプリンタ...
-
Javaから直接プリンターへ印刷...
おすすめ情報