- ベストアンサー
ExcelVBA ユーザーフォームに関しての質問です。
ExcelVBA ユーザーフォームに関しての質問です。 ユーザーフォームでフレームを使って、 フレーム内に複数のチェックボックスを配置したとします。 行いたい作業としては次の2点 ?フレーム内に配置したチェックボックスのうち、チェックが入っているものだけの数を調べる ?チェックが入っているボックスの値(caption)を取得して、変数に入れる 以上のことができるでしょうか?
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
標準モジュールに Sub test01() Dim ctrl As Control For Each ctrl In UserForm1.Controls If TypeOf ctrl Is MSForms.CheckBox Then MsgBox ctrl.Name MsgBox ctrl.Parent.Name MsgBox ctrl.Value If ctrl.Parent.Name = "Frame1" Then If ctrl.Value = True Then c = c + 1 End If End If End If Next MsgBox c End Sub フォームにコマンドボタンを設けてそのクリックイベントに Private Sub CommandButton2_Click() test01 End Sub ーーー ユーザーフォームUserForm1には、Frame1、Frame2を設け、Frame1にはチェックボックスを3つ、Frame2にはチェックボックス2つ設けてテストしました。 MsgBox c以外のMsgboxは確認後抹消のこと。 フレーム名をユーザーが好きな名前に変えている場合は、Parent.Name = "Frame1"の””内は、それらに従って変えること。 変数に入れる、については、配列にでも値を入れることを考えれば良いと思う。
お礼
おぉ!!こんな方法があったんですね!! ありがとうございます!解決しました!