Excelでフォームコントロールから追加した「チェックボックス」のステータスを確認をVBAで実現する方法。
なお、今回は複数のチェックボックスをFor文を使用して確認する方法を紹介する。
--
1.フォームコントロールから追加したチェックボックスとは?
Excelの[開発]タブ>[挿入]>[フォームコントロール]から追加することができるチェックボックス。
VBAでチェックボックスのステータスを判定し、様々な処理を行うことができる。
チェックボックスのステータスは、「TRUE」と「FALSE」の値で取得することができる。
--
2.ステータスや項目名はどうやって取得するか?
私がよく使う方法は、次の2つの方法です。
①プロパティ画面から確認する
「コントロール」を「デザインモード」に変更し、ステータスを確認したいチェックボックスを選択する。
チェックボックスを選択した状態で、右クリックし、プロパティを選択する。
②VBAでプラパティを確認する
以下のコマンドで情報を確認する。
Sub test()
'value ( true or false ) 取得
rc = ActiveSheet.checkbox1.Value
MsgBox rc
'caption取得
rc = ActiveSheet.checkbox1.Value
MsgBox rc
End Sub
--
3.チェックボックスが複数ある場合に使えるknowledge
チェックボックスを大量に使用する場合など、ステータスや項目情報を取得するために、
1つ1つ手動で対応するのは非効率的である。
下記の方法で、効率的(楽に)情報を取得することができる。
Sub test()
Dim i, n As Long
With ActiveSheet
For i = 1 To n
With .OLEObjects("CheckBox" & i).Object
rc1 = .Value
rc2 = .Caption
End With
Next i
End With
End Sub