Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


8748 / 13644 ツリー ←次へ | 前へ→

【31355】条件に合致した場合のみ印刷したい あさか 05/11/18(金) 13:06 質問[未読]
【31356】Re:条件に合致した場合のみ印刷したい Jaka 05/11/18(金) 13:12 回答[未読]
【31404】Re:条件に合致した場合のみ印刷したい あさか 05/11/18(金) 18:37 発言[未読]
【31406】Re:条件に合致した場合のみ印刷したい こたつねこ 05/11/18(金) 21:37 回答[未読]
【31407】Re:条件に合致した場合のみ印刷したい Kein 05/11/18(金) 21:48 発言[未読]
【31411】Re:条件に合致した場合のみ印刷したい あさか 05/11/19(土) 10:18 お礼[未読]

【31355】条件に合致した場合のみ印刷したい
質問  あさか  - 05/11/18(金) 13:06 -

引用なし
パスワード
   こんにちは。

A1セルの値が0の場合は印刷許可
A1セルの値が0以外の場合は印刷不可という風に制御し、
印刷不可の場合は「仕分けミス」とメッセージを
出したいのですが、どのように対応したらよいのか教えて下さい。

よろしくお願い致します。

【31356】Re:条件に合致した場合のみ印刷したい
回答  Jaka  - 05/11/18(金) 13:12 -

引用なし
パスワード
   テストしてないけど、こんな感じ。
Thisworkbookに

Private Sub Workbook_BeforePrint(Cancel As Boolean)
  If Range("A1") <> "0" Then
    MsgBox "ミス"
    Cancel = True
  End If
End Sub

【31404】Re:条件に合致した場合のみ印刷したい
発言  あさか  - 05/11/18(金) 18:37 -

引用なし
パスワード
   Jakaさんありがとうございます。
A1が0でない場合は"ミス"の表示が出るのですが
印刷を中止できませんでした。
メッセージボックスの「OK」を押すと印刷が継続されてしまいます。

Sub 印刷()
  
  パス = ActiveWorkbook.Path
  タイトル = "印刷"
  メッセージ = "印刷を開始します。"
  スタイル = vbYesNo + vbQuestion
  YESNO = MsgBox(メッセージ, スタイル, タイトル)
  If YESNO = vbYes Then
  
  If Range("A1") <> "0" Then
    MsgBox "ミス"
    Cancel = True
  End If

  Sheets("請求書").Select
  ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
  Sheets("領収書").Select
  ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
 
End If
  
End Sub

現在の記述は上記です。
OKを押すと印刷を中止し元の画面に戻るようにしたいです。
よろしくお願い致します。

【31406】Re:条件に合致した場合のみ印刷したい
回答  こたつねこ  - 05/11/18(金) 21:37 -

引用なし
パスワード
   あさかさん、こんばんは

あさかさんのコードを切り貼りしてみました。

質問する場合、文章で正確に状況を説明するか、はじ
めからコードを提示していれば回答者の方々ももっと
的確に回答しやすいし、時間も無駄にならないので、
次回質問する機会があればコードを提示するようにし
たほうがいいと思いますよ。

Sub 印刷()
  パス = ActiveWorkbook.Path
  タイトル = "印刷"
  メッセージ = "印刷を開始します。"
  スタイル = vbYesNo + vbQuestion
  YESNO = MsgBox(メッセージ, スタイル, タイトル)
  If YESNO = vbYes Then
  
    If Range("A1") <> "0" Then
      MsgBox "ミス"
    Else
      Sheets("請求書").Select
      ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
      Sheets("領収書").Select
      ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
    End If
  End If
End Sub

【31407】Re:条件に合致した場合のみ印刷したい
発言  Kein  - 05/11/18(金) 21:48 -

引用なし
パスワード
   Jakaさんの回答は
>Thisworkbookに
Thisworkbook「モジュール」に
>Private Sub Workbook_BeforePrint(Cancel As Boolean)
という「タイトル」のコードを書いて下さい、となってますよね ?
これを普通のマクロ → Sub 印刷() にしてしまったら、Cancel = True
は無効になって当然です。よって印刷が中止できなくなっているのです。

【31411】Re:条件に合致した場合のみ印刷したい
お礼  あさか  - 05/11/19(土) 10:18 -

引用なし
パスワード
   ありがとうございました。
まだまだ未熟者でご迷惑を掛けました。
今後ともよろしくお願い致します。

8748 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free