• ベストアンサー

ExcelVBAのチェックボックスについてインデックスはありますか

ExcelVBA(Excel2002)でツールを作成しています。 そこで、チェックボックスを使っているのですが、処理をするにあたり、VisualBasicのチェックボックスのプロパティにあるindexのようなものを使いたいのです。 VBAのプロパティにはindexという名前ではなかったのですが、何か、変わりになるものはありませんでしょうか。

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

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.1

こんばんは。 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)
回答No.2

エクセル、アクセス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 コントロール配列」で照会してみてください。

関連するQ&A