- ベストアンサー
チェックボックスの内容をテキストボックスに表示続き
下記質問について追加の質問です。 http://okwave.jp/qa/q8186736.html すべてのチェックを外すとエラーになってしまうのですが すべてのチェックをはずした場合 「チェックを入れてください」とメッセージボックスが表示されるようにしたいです。 どのようにコードを記載すればいいでしょうか? お願いいたします!
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
前回回答したものです すべてのチェックボックスを外した場合を考えてませんでした。 Private Sub コマンド0_Click() Dim ctl As Control Dim buf As Variant For Each ctl In Me.Controls If TypeName(ctl) = "checkbox" Then If ctl.Value = -1 Then buf = buf & ctl.Name & " " End If End If Next If buf = Empty Then Me!テキスト1 = Null Else Me!テキスト1 = Left(buf, Len(buf) - 1) End If End Sub ではダメですか? すべてチェックが入っていない場合は、テキスト1は空白になります。 なお、上記ではテキスト1とは関係ない(別の用途で使いたい) チェックボックス(例:checkboxZ)が有った場合に それも一緒にテキスト1に書き加えられてしまうので Private Sub コマンド0_Click() Dim ctl As Control Dim buf As Variant Dim chkAry As Variant Dim i As Integer chkAry = Array("A", "B", "C", "D", "E") '↑A~Eはテキスト1と関連付けたいチェックボックス名 For i = 0 To UBound(chkAry) If Me.Controls(chkAry(i)).Value = -1 Then buf = buf & chkAry(i) & " " End If Next If buf = Empty Then Me!テキスト1 = Null Else Me!テキスト1 = Left(buf, Len(buf) - 1) End If End Sub のように
お礼
ありがとうございます! 空欄への対処に加え、関係ないチェックボックスの処理まで教えていただいて 大変助かりました! 実は関係ないチェックボックスがあって、 それをどうしようか・・・と考えていたところです。 さっそくためしてみます! 本当にありがとうございました!