- ベストアンサー
EXCELのチェックボックスについて
EXCEL2003を使用しています。 ■質問項目があり、回答する複数のセルにチェックボックスを配置してあります。 A列:質問 B列:回答のチェックボックス C列:回答のチェックボックス D列:回答のチェックボックス : Z列:OK 又は NGと表記したい。 ■各列の回答チェックボックスが全てonになっていたらOK、1つでもoffになっていたらNGと、Z列に表記させたいのですが、どのような式になりますか? ご回答の程、よろしくお願いいたします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
チェックボックスの "リンクするセル" を利用するのが手早いと思います。 印刷範囲外に true とか false を出力するようにして、そこをあとで集計するとして、その結果をZ列に返しては如何でしょうか? たとえば、B2のチェックボックスのリンク先を、ずっと右のほうの、AB2というセルにリンクさせます。 そうすると、B2のチェックボックスのチェックしたかどうかが、 true もしくは false で、AB2のセルに表示されます。 これを、C2のチェックボックスをAC2にリンク、 D2のチェックボックスをAD2にリンク。。。という具合に Y2をAY2にリンクというところまで続けていきます。 次に、AZ2のところに、↓を書き込みます。 =countif(AB2:AY2,"TRUE") すると、AZ2のところに数字が出ます。 あとは、Z2のところに =if(AZ2=24,"OK","NG") と入力してあげれば、思ったとおりに出来るはずです。 3行目以降は、2行目を丸ごとコピーすれば使えます。 チェックボックスとリンクの仕方は下記サイトを参考にしてください。
その他の回答 (2)
- imogasi
- ベストアンサー率27% (4737/17070)
私も思いついたのは#1のご回答の方法でした。既出だったので出せませんが。 ーー LinkedCellを使わないでやるには VBAでTRUEの数を数えると良いわけですが チェックボックスだけなら Sub test01() t = 0 For i = 1 To 3 MsgBox Worksheets("Sheet1").OLEObjects(i).Object.Value If Worksheets("Sheet1").OLEObjects(i).Object.Value = True Then t = t + 1 End If Next i MsgBox t End Sub MsgBoxは適当なときに削除してください。 上記tの値が既定の数に等しいかどうかでZ列にOK,NGを入れてください。これらは全行一斉に対象に実行するか、クリックイベントなどで実行してください。
お礼
お礼が遅くなり、申し訳ありません。 #2の方と同様に、マクロはよくわからないので、#1の方の方法で対応いたしました。 でも、今後はマクロも勉強していきたいと思っていますので、また何かありましたら、どうぞよろしくお願いいたします。
- Wendy02
- ベストアンサー率57% (3570/6232)
こんにちは。 以下は、フォーム側のチェックボックスに設定するためのマクロです。 ただし、全体のチェックボックスで、個別に分けてはいません。 コントロールツールのチェックボックスでは、かなりコードの内容が変わります。 '標準モジュールのみです。 '------------------------------------------------ Sub ChkBxCheck() 'チェックボックス表示用 Dim chk As Object For Each chk In ActiveSheet.CheckBoxes If chk.Value = xlOff Then Range("Z2").Value = "NG" Exit Sub End If Next chk Range("Z2").Value = "OK" End Sub '------------------------------------------------ Sub ChkBoxSet() 'チェックボックスに設定 '1回きりで設定されます。 Dim chk As Object For Each chk In ActiveSheet.CheckBoxes chk.OnAction = "ChkBxCheck" Next chk End Sub
お礼
お礼が遅くなり、申し訳ありません。 マクロはよくわからないので、#1の方の方法で対応いたしました。 でも、今後はマクロも勉強していきたいと思っていますので、また何かありましたら、どうぞよろしくお願いいたします。
お礼
お礼が遅くなり、申し訳ありません。 この方法でバッチリでした!! 助かりました。どうもありがとうございます。 また何かありましたら、どうぞよろしくお願いいたします。