『チェックボックスの入力チェック』(ミコ) シート1のA列にチェックボックスが2つ、C列にチェックボックスが4つあります。    A     B    C    D 1 □いちご     □あまおう  2 □とちおとめ 3 4 □りんご     □ふじ 5 □ジョナゴールド 6 A列のいちごにチェックが入っている時には、C列のあまおうとちおとめのどちらかに チェックが入っていなければいけない。 A列のりんごにチェックが入っている時には、C列のふじとジョナゴールドのどちらかに チェックが入っていなければいけない。 (いちごにもりんごにもチェックが入っていない時はスルー) 以上の条件のチェックをブックを閉じる時に行い、チェック漏れがあったら 「あまおうか、とちおとめのどちらかにチェックを入れてください」などの メッセージを出すようにして、チェック漏れが解決できるまでブックが閉じられない ような仕様にしたいのですが、どのようなマクロになりますか?            < 使用 Excel:Excel2010、使用 OS:WindowsXP > ---- sheet1にCheckBox1〜CheckBox3のオブジェクトを用意し、 下記イベントをthisworkbookに記述する。 sheet1のオブジェクト CheckBox1のcaptionに「イチゴ」 CheckBox2のcaptionに「あまおう」 CheckBox3のcaptionに「とちおとめ」 と入力しておきます。 'エクセルファイル終了時イベント処理 Private Sub Workbook_BeforeClose(Cancel As Boolean) If Worksheets("Sheet1").CheckBox1.Value = True Then If Worksheets("Sheet1").CheckBox2.Value = False And Worksheets("Sheet1").CheckBox3.Value = False Then MsgBox Worksheets("Sheet1").CheckBox2.Caption & "又は" & Worksheets("Sheet1").CheckBox3.Caption & "にチェックを入れてください。" cansel = False Else ThisWorkbook.Close End If Else MsgBox "入力がありません。" End If End Sub 分岐がわかるようにメッセージを入れておきました。 不要な動作は削除してください。 以上 (K) 2014/06/09(月) 17:18 ---- 'エクセルファイル終了時の処理 Private Sub Workbook_BeforeClose(Cancel As Boolean) If Worksheets("Sheet1").CheckBox1.Value = True Then If Worksheets("Sheet1").CheckBox2.Value = False And Worksheets("Sheet1").CheckBox3.Value = False Then MsgBox Worksheets("Sheet1").CheckBox2.Caption & "又は" & Worksheets("Sheet1").CheckBox3.Caption & "にチェックを入れてください。" Cancel = True Else ThisWorkbook.Close End If Else MsgBox "入力がありません。" End If End Sub ※動作確認が不十分でした。申し訳ない。 スペルミス等を修正しました。 (K) 2014/06/09(月) 17:24 ---- シートに貼り付けるチェックボックスコントロールは、 開発タブの挿入をクリックすればわかると思いますが、 「フォームコントロール」と「ActiveXControl」の2種類があります。 種類によって、コードの書き方が違ってきます。 その辺りをはっきり記述してください。 又、 > A列のいちごにチェックが入っている時には、C列のあまおうとちおとめのどちらかに >チェックが入っていなければいけない。 これは、どちらか一つだけ選択できるという意味ですか? それとも両方同時の選択も可能という事ですか? これもはっきり記述してください。 それによって、チェックも違ってきますから・・・。 (ichinose) 2014/06/10(火) 09:19 ---- ミコです。 お返事が遅くなってしまい申し訳ありません。 ichinoseさんの仰るとおり、フォームコントロールのチェックボックスでした… Kさんのコードの”CheckBox1”の部分を、リンクするセルに置き換えてみたら 問題なく動作しましたので、これで使わせていただきたいと思います。 選択できる数については、両方同時の選択も可能というつもりでしたので このままで大丈夫そうです。 次に質問する際には、その辺りのことも考慮して質問したいと思います。 Kさん、ichinoseさん、ありがとうございました。 (ミコ) 2014/06/13(金) 12:11