'ボタンをクリックで実行
Private Sub CommandButton1_Click()
a = ""
'CheckBox1~CheckBox5
For i = 1 To 5
'チェックボックスの値を取得
a = a & Controls("CheckBox" & i) & vbLf
Next
MsgBox a
End Sub
'ボタンクリックで実行
Private Sub CommandButton1_Click()
'チェックボックスの表示を変更
CheckBox1.Caption = "チェックボックス1"
End Sub
VBAを実行してみます。
チェックボックスの表示をCaptionで変更した結果
チェックボックスの表示を『チェックボックス1』に変更できました。
チェックボックスの操作(チェックをつける・はずす)
チェックボックスのチェックをつける方法とはずす方法について説明します。
1つのチェックボックス
チェックボックスに『True』もしくは『False』を入力すればできます。
VBAコードはこちらです。『ユーザーフォームの中のコード』に記載します。
'ボタンクリックで実行
Private Sub CommandButton1_Click()
'チェックボックスのチェックをつける
CheckBox1.Value = True
End Sub
'ボタンクリックで実行
Private Sub CommandButton2_Click()
'チェックボックスのチェックをはずす
CheckBox1.Value = False
End Sub
チェックをつけたい場合は、『CheckBox1.Value = True』とします。
チェックボックスにチェックをつける
チェックがついています。
チェックをはずしたい場合は、『CheckBox1.Value = False』とします。
チェックボックスのチェックをはずす
チェックがはずれています。
複数のチェックボックス
複数のチェックボックスを操作する方法を説明します。
複数の場合は、『Controls』を使うと便利です。
VBAコードはこちらです。『ユーザーフォームの中のコード』に記載します。
'ボタンクリックで実行
Private Sub CommandButton1_Click()
'CheckBox1~5
For i = 1 To 5
'チェックボックスにチェックをつける
Controls("CheckBox" & i) = True
Next
End Sub
'ボタンクリックで実行
Private Sub CommandButton2_Click()
'CheckBox1~5
For i = 1 To 5
'チェックボックスのチェックをはずす
Controls("CheckBox" & i) = False
Next
End Sub
'CheckBox6の変更で実行
Private Sub CheckBox6_Change()
'CheckBox1~CheckBox5
For i = 1 To 5
'チェックボックスにCheckBox6の値を入力
Controls("CheckBox" & i).Value = CheckBox6.Value
Next
End Sub
チェックボックスの値変更で実行するコードは『Private Sub CheckBox6_Change()』といいうように記載します。
'ユーザーフォームを開いたとき実行
Private Sub UserForm_Initialize()
'セルの値をチェックボックスに入力
CheckBox1.Value = ActiveSheet.Cells(1, 1)
End Sub
'チェックボックスを変更したときに実行
Private Sub CheckBox1_Change()
'チェックボックスの値をセルに入力
ActiveSheet.Cells(1, 1) = CheckBox1.Value
End Sub
最初に初期値でセルに入力された値をチェックボックスに入力します。
初期値は『Private Sub UserForm_Initialize()』の中にコードを記載すると設定できます。
'ユーザーフォームを開いたとき実行
Private Sub UserForm_Initialize()
'CheckBox1~CheckBox5
For i = 1 To 5
'セルの値をチェックボックスに入力
Controls("CheckBox" & i).Value = ActiveSheet.Cells(i, 1)
Next
'チェックをはずす
CheckBox6.Value = False
End Sub
'チェックボックスを変更したとき実行
Private Sub CheckBox1_Change()
'セルにチェックボックスの値を入力
ActiveSheet.Cells(1, 1) = CheckBox1.Value
End Sub
'チェックボックスを変更したとき実行
Private Sub CheckBox2_Change()
'セルにチェックボックスの値を入力
ActiveSheet.Cells(2, 1) = CheckBox2.Value
End Sub
'チェックボックスを変更したとき実行
Private Sub CheckBox3_Change()
'セルにチェックボックスの値を入力
ActiveSheet.Cells(3, 1) = CheckBox3.Value
End Sub
'チェックボックスを変更したとき実行
Private Sub CheckBox4_Change()
'セルにチェックボックスの値を入力
ActiveSheet.Cells(4, 1) = CheckBox4.Value
End Sub
'チェックボックスを変更したとき実行
Private Sub CheckBox5_Change()
'セルにチェックボックスの値を入力
ActiveSheet.Cells(5, 1) = CheckBox5.Value
End Sub
'チェックボックスを変更したとき実行
Private Sub CheckBox6_Change()
'CheckBox1~CheckBox5
For i = 1 To 5
'チェックボックスにCheckBox6の値を入力
Controls("CheckBox" & i).Value = CheckBox6.Value
Next
End Sub
最初に初期値設定『Private Sub UserForm_Initialize()』でセルの値をチェックボックスに入力しています。