Excel VBA質問箱 IV

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

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


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

【18703】印刷前の必須処理をしたかの判断 ackkn 04/10/6(水) 13:49 質問[未読]
【18704】Re:印刷前の必須処理をしたかの判断 Asaki 04/10/6(水) 13:54 回答[未読]
【18709】Re:印刷前の必須処理をしたかの判断 ackkn 04/10/6(水) 17:57 回答[未読]
【18713】Re:印刷前の必須処理をしたかの判断 Kein 04/10/6(水) 20:37 回答[未読]
【18726】Re:印刷前の必須処理をしたかの判断 ackkn 04/10/7(木) 15:55 発言[未読]
【18747】Re:印刷前の必須処理をしたかの判断 Kein 04/10/8(金) 10:39 回答[未読]

【18703】印刷前の必須処理をしたかの判断
質問  ackkn  - 04/10/6(水) 13:49 -

引用なし
パスワード
   何方かご教示下さい。
印刷処理を実行した際に、印刷前の必須処理(ソートや集計)が未実施だった場合にメッセージを表示する方法を教えて下さい。
よろしくお願いします。

【18704】Re:印刷前の必須処理をしたかの判断
回答  Asaki  - 04/10/6(水) 13:54 -

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

処理が実行済みであるかどうかは、どのようにして判断するのでしょうか?
また、それらの処理はマクロによって実行されるのでしょうか?
もしそうなら、マクロの中で実行済みフラグを設定するなどで判断できそうです。

逆に、印刷前に、必須処理を勝手に実行してしまうのでは?

【18709】Re:印刷前の必須処理をしたかの判断
回答  ackkn  - 04/10/6(水) 17:57 -

引用なし
パスワード
   ▼Asaki さん:
>こんにちは。
>
>処理が実行済みであるかどうかは、どのようにして判断するのでしょうか?
>また、それらの処理はマクロによって実行されるのでしょうか?
>もしそうなら、マクロの中で実行済みフラグを設定するなどで判断できそうです。
Asaki さん、こんにちは、お久しぶりです。
早速のレス、ありがとうございます。
ソートと集計の処理は、マクロでの処理で、シート上のコマンドボタンで起動をかけます。
で、ご教示のようにフラグ設定でいけそうな気はしたのですが、問題はそのフラグ設定を印刷処理実行時にどのようにチェックしてメッセージを出せばいいのかが判りません。(尚、印刷処理とは、普通にファイル(F)→印刷(P)といくか、ツールバー上の印刷ボタンを押すか、レイアウト表示から印刷するかのどれかです)

>逆に、印刷前に、必須処理を勝手に実行してしまうのでは?
それは、ソート処理に選択肢があるのでちょっと強引すぎます。
よろしくお願いします。

【18713】Re:印刷前の必須処理をしたかの判断
回答  Kein  - 04/10/6(水) 20:37 -

引用なし
パスワード
   まずボタンを押したときのマクロで、ソートと集計のコードの後に

Range("IV1").Value = 1

などとセルに記憶させます。そして Workbook_BeforePrint イベントで
Range("IV1") の値をチェックして、1 で無かったら MsgBox を出し、Cancel = True
でストップさせれば良いでしょう。
問題はどのタイミングで IV1 の値をクリアするか、ですが・・。

【18726】Re:印刷前の必須処理をしたかの判断
発言  ackkn  - 04/10/7(木) 15:55 -

引用なし
パスワード
   ▼Kein さん:
Kein さん、ご無沙汰しております。
また、お世話になります。
レス、ありがとうございます。
>まずボタンを押したときのマクロで、ソートと集計のコードの後に
>Range("IV1").Value = 1
>などとセルに記憶させます。
このIV1とは適当なセルでいいのですね。
>そして Workbook_BeforePrint イベントで
>Range("IV1") の値をチェックして、1 で無かったら MsgBox を出し、
>Cancel = True でストップさせれば良いでしょう。
ちょっと、この意味(コード)が判りません
>問題はどのタイミングで IV1 の値をクリアするか、ですが・・。
そうですね、今度は一度ソート、集計した結果がクリアされたという事実をどうやってキャッチするか? になりますね。
よろしくお知恵をお貸し(お返しできませんが...)下さい。

【18747】Re:印刷前の必須処理をしたかの判断
回答  Kein  - 04/10/8(金) 10:39 -

引用なし
パスワード
   >このIV1とは適当なセルでいいのですね
原則としてどこでも構いませんが、シート全体のセルを選択してクリアされる
可能性があるなら、絶対クリアすることの無いシートに入力するべきでしょう。
>この意味(コード)が判りません
ThisWorkbookモジュールにあるイベントです。

Private Sub Workbook_BeforePrint(Cancel As Boolean)
  If Sheets("SheetX").Range("IV1").Value <> 1 Then
   MsgBox "ソート・集計処理が済んでいません", 48
   Cancel = True
  End If
End Sub

てな感じです。Cancel = True にすると、印刷実行をストップ出来ます。
>ソート、集計した結果がクリアされたという事実をどうやってキャッチ
表の中の一つのセルを監視するのが、一番簡単かと思います。つまり

Private Sub Worksheet_Change(ByVal Target As Range)
  With Target
   If .Address <> "$C$10" Then Exit Sub
   If IsEmpty(.Value) Then
     Sheets("SheetX").Range("IV1").ClearContents
   End If
  End With
End Sub

などというイベントを、そのシートのシートモジュールに入れておきます。

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