• ベストアンサー

チェックボックスの内容をテキストボックスに表示続き

下記質問について追加の質問です。 http://okwave.jp/qa/q8186736.html すべてのチェックを外すとエラーになってしまうのですが すべてのチェックをはずした場合 「チェックを入れてください」とメッセージボックスが表示されるようにしたいです。 どのようにコードを記載すればいいでしょうか? お願いいたします!

質問者が選んだベストアンサー

  • ベストアンサー
  • nicotinism
  • ベストアンサー率70% (1019/1452)
回答No.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 のように

masunona
質問者

お礼

ありがとうございます! 空欄への対処に加え、関係ないチェックボックスの処理まで教えていただいて 大変助かりました! 実は関係ないチェックボックスがあって、 それをどうしようか・・・と考えていたところです。 さっそくためしてみます! 本当にありがとうございました!

関連するQ&A