advanced help
per page, with , order by , clip by
Results of 1 - 1 of about 37667 for IF (0.007 sec.)
[[20160420131203]]
#score: 1591
@digest: 07a6721e28abffdbec775a19f9059877
@id: 70504
@mdate: 2016-04-20T05:18:26Z
@size: 5058
@type: text/plain
#keywords: 他" (19868), 部該 (12325), beforeclose (5471), cancel (5284), interior (5029), colorindex (4137), 赤い (3988), 未入 (3231), e42 (3218), g25 (3027), beforesave (2916), い箇 (2868), e40 (2730), 存な (2075), が未 (1792), で閉 (1761), ド例 (1664), 箇所 (1576), range (1348), ッセ (1101), い" (1100), メッ (1095), value (1027), の他 (1024), セー (972), 所が (924), 。" (895), then (860), boolean (827), 保存 (793), workbook (779), true (718)
『メッセージボックスの使い方』(らん)
初めましての質問です。 ファイルを閉じようとしたとき、 指定したセルに指定した文字が入力されているとき、 別で指定したセルが空欄だったらそのセルを赤くして 注意メッセージを表示したいです。 Private Sub Workbook_BeforeClose(Cancel As Boolean) If Range("C23").Value = "はい" Then If Range("G25").Value = "" Then Range("G25").Interior.ColorIndex = 3 MsgBox "赤い箇所が未入力です。" Cancel = True End If End If If Range("D34").Value = "その他" Then If Range("E40").Value = "" Then Range("E40").Interior.ColorIndex = 3 MsgBox "赤い箇所が未入力です。" Cancel = True End If End If If Range("D34").Value = "その他" Then If Range("E42").Value = "" Then Range("E42").Interior.ColorIndex = 3 MsgBox "赤い箇所が未入力です。" Cancel = True End If End If If Range("C45").Value = "その他" Then If Range("G47").Value = "" Then Range("G47").Interior.ColorIndex = 3 MsgBox "赤い箇所が未入力です。" Cancel = True End If End If If Range("C54").Value = "その他" Then If Range("G56").Value = "" Then Range("G56").Interior.ColorIndex = 3 MsgBox "赤い箇所が未入力です。" Cancel = True End If End If If Range("C59").Value = "はい" Then If Range("G61").Value = "" Then Range("G61").Interior.ColorIndex = 3 MsgBox "赤い箇所が未入力です。" Cancel = True End If End If End Sub このようにしたのですが、 これだと、全部該当する場合、6回もメッセージが出てしまいます。 全部該当する場合であっても、メッセージは1回だけにしたいのですが、 どのようにすればよいでしょうか? 教えてください。よろしくお願いいたします。 < 使用 Excel:Excel2007、使用 OS:unknown > ---- メッセージの回数に関しては、後ほど案をアップしたいと思います。 (その前に 他の回答者さんから回答があるとは思いますが) Private Sub Workbook_BeforeClose(Cancel As Boolean) BeforeCloseイベントを使っておられますね。 これは、やめたほうがいいですよ。 ブックをいろいろ変更した、でも、それをチャラにして保存なしで閉じたい、いずれ時間の余裕があるときに 入力しなおそう こんな場合って、しょっちゅうありますよね。 なのに、あそこをいれろ、ここをいれろと うるさく(?)叱られて、かつ Cancel = True ですから すべて、正しく入れるまで、【保存なしで閉じることができません】 やるなら BeforeSave で行うべきでしょうね。 ただ、BeforeSaveの場合、途中の上書き保存のみならず、Xボタンで閉じる、その際に、保存すると指定した時に 実行されるわけですが、そのタイミングでチェックして Cancel = True としても、【保存がキャンセル】されるだけで ブックは、保存なしで閉じられてしまいます。 そのあたりが不都合なら、別途の手立てを考える必要があります。 (β) 2016/04/20(水) 13:52 ---- もう2つ。 ThisWorkbookモジュールに書かれたコードのセル参照は、標準モジュールと同じ扱いで どのシートのセルという指定がない場合、【たまたま、その時に】アクティブになっているシートが対象になります。 コードなでチェックしているセルのシートがどれなのか、シート修飾をして明示すべきですね。 (最悪、プロシジャの最初で 該当のシート.Activate というコードをいれておくと、アップされた記述でもOKですけど) それと、C45 と C54 それぞれ、その他 かどうか判定していますが、ミスタイプじゃなく C45 と C54 なんですね? (β) 2016/04/20(水) 13:57 ---- とりあえずコード例です。 イベントは、そちらのコードのまま、BeforeClose にしてあります。 Private Sub Workbook_BeforeClose(Cancel As Boolean) Sheets("Sheet1").Activate '★対象シート Range("G25,E40,E42,G47,G56,G61").Interior.ColorIndex = xlNone If Range("C23").Value = "はい" Then If Range("G25").Value = "" Then Range("G25").Interior.ColorIndex = 3 Cancel = True End If End If If Range("D34").Value = "その他" Then If Range("E40").Value = "" Then Range("E40").Interior.ColorIndex = 3 Cancel = True End If End If If Range("D34").Value = "その他" Then If Range("E42").Value = "" Then Range("E42").Interior.ColorIndex = 3 Cancel = True End If End If If Range("C45").Value = "その他" Then If Range("G47").Value = "" Then Range("G47").Interior.ColorIndex = 3 Cancel = True End If End If If Range("C54").Value = "その他" Then If Range("G56").Value = "" Then Range("G56").Interior.ColorIndex = 3 Cancel = True End If End If If Range("C59").Value = "はい" Then If Range("G61").Value = "" Then Range("G61").Interior.ColorIndex = 3 Cancel = True End If End If If Cancel Then MsgBox "赤い箇所が未入力です。" End Sub (β) 2016/04/20(水) 14:18 ...
http://www.excel.studio-kazu.jp/wiki/kazuwiki/201604/20160420131203.txt - [detail] - similar
PREV NEXT
Powered by Hyper Estraier 1.4.13, with 97012 documents and 608132 words.

訪問者:カウンタValid HTML 4.01 Transitional