- ベストアンサー
ExcelVBAのチェックボックスについてインデックスはありますか
ExcelVBA(Excel2002)でツールを作成しています。 そこで、チェックボックスを使っているのですが、処理をするにあたり、VisualBasicのチェックボックスのプロパティにあるindexのようなものを使いたいのです。 VBAのプロパティにはindexという名前ではなかったのですが、何か、変わりになるものはありませんでしょうか。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
こんばんは。 VBのコントロール配列のことをおっしゃっているのでしょうか? 本来、以下のような使い方はあまりしませんが、このようにして、Index を入れて、配列にすることが可能です。他にも、クラスモジュールに作ってやる方法もありますが、どちらも、あまり使われないような気がします。 その理由は、単に、Me.Controls("CheckBox" & i) をループしてあげれば済むからなのだと思います。 Dim myChkBoxes As Collection Private Sub CommandButton1_Click() For i = 1 To myChkBoxes.Count If myChkBoxes(i).Value = True Then MsgBox i End If Next End Sub Private Sub UserForm_Initialize() Set myChkBoxes = New Collection For i = 1 To 10 myChkBoxes.Add Controls("CheckBox" & i) Next End Sub
その他の回答 (1)
- imogasi
- ベストアンサー率27% (4737/17070)
エクセル、アクセスVBAには、今のところMS社は、コントロール配列を認めていません。 しかし便法で下記ができます。 フォームに3つラベルを貼り付けると、Label1,Label2,Label3と命名されます。 ラベルのCaptionをそれぞれ変えて Private Sub UserForm_Click() For i = 1 To 3 MsgBox Controls("Label" & i).Caption Next i End Sub を実験すればわかります。 かってから似た質問は時々あります。 http://okweb.jp/kotaeru.php3?q=1383448 http://okweb.jp/kotaeru.php3?q=355144 など。 後者の私の回答はVBと勘違いしていて、誤りです。すみません。 このOKWEBで「VBA コントロール配列」で照会してみてください。