Excel
VBA

【VBA】チェックボックスのステータスを確認する

More than 1 year has passed since last update.

Excelでフォームコントロールから追加した「チェックボックス」のステータスを確認をVBAで実現する方法。

なお、今回は複数のチェックボックスをFor文を使用して確認する方法を紹介する。

--


1.フォームコントロールから追加したチェックボックスとは?

Excelの[開発]タブ>[挿入]>[フォームコントロール]から追加することができるチェックボックス。

VBAでチェックボックスのステータスを判定し、様々な処理を行うことができる。

0001.png

0002.png

チェックボックスのステータスは、「TRUE」と「FALSE」の値で取得することができる。

--


2.ステータスや項目名はどうやって取得するか?

私がよく使う方法は、次の2つの方法です。


①プロパティ画面から確認する

0003.png

「コントロール」を「デザインモード」に変更し、ステータスを確認したいチェックボックスを選択する。

チェックボックスを選択した状態で、右クリックし、プロパティを選択する。


②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