この記事では【Excel】VBAマクロでチェックボックスの判定を取得(複数:セル:ユーザーフォーム:シート:if:For Each:Range)する方法について解説していきます。
ポイントとしては、For Each文を使用したチェックボックスの一括処理、If文を使用した条件分岐処理を使用することです。
なお、下記の解説では完全な初心者でもわかりやすいようにあえて変数名(あなた自身が名付けていい場所)を少々変わった名称にしております。
そのため、あなた自身がご活用の際には、ここを適切な英語表記でしっくりくるものが一般的)ものに変更してご活用くださいね。
それでは詳しく見ていきましょう!
VBAマクロでチェックボックスの判定を取得しセルに表示させるする方法【samplesheet内の複数すべてのチェックボックスの判定結果を、hanteisheetのA列のセルに上から順番に入力】
それではまず、VBAマクロでチェックボックスの判定を取得しセルに表示させるする方法について解説していきます。
具体的には、samplesheet内の複数すべてのチェックボックスの判定結果を、hanteisheetのA列のセルに上から順番に入力していく処理としています。
Alt + F11にてVBE画面を開いて、以下コードをコピペしましょう。
Sub checkboxtantei() 'チェックボックス判定
Dim ws As Worksheet
Set ws = Worksheets("samplesheet")
Dim hanteisheet As Worksheet
Set hanteisheet = Worksheets("hanteisheet")
Dim chkbox As CheckBox
Dim gyou As Long
gyou = 1
'samplesheet内のすべてのチェックボックスを判定
For Each chkbox In ws.CheckBoxes
'チェックボックスの判定結果をhanteisheetのA列に順番に入力
If chkbox.Value = 1 Then
hanteisheet.Cells(gyou, 1).Value = "チェック有り"
Else
hanteisheet.Cells(gyou, 1).Value = "チェック無し"
End If
gyou = gyou + 1
Next chkbox
End Sub
コードのAlt+F8を押し、マクロ選択画面でcheckboxtantei関数を実行します。
このコードでは、以下のような処理を行っています。
1. samplesheetとhanteisheetのワークシートオブジェクトを取得
2. gyou変数を初期化し、hanteisheetのA列の行番号として使用
3. samplesheet内のすべてのチェックボックスをループ処理
4. チェックボックスの判定結果に応じて、hanteisheetのA列に”チェック有り”または”チェック無し”を入力
5. gyou変数をインクリメントして次の行に移動
コードを1行ずつ追っていけば難しいことはありませんね(^^)/
VBAマクロで1つのチェックボックスの判定を取得し、if分で条件分岐し処理を変える方法【samplesheet内にある1つのチェックボックスがONならばA列とB列の数値の掛け算結果をC列に表示させ、OFFならばA列とB列の数値の足し算結果をC列に処理する】
続いては、VBAマクロで1つのチェックボックスの判定を取得し、if分で条件分岐し処理を変える方法について解説していきます。
Alt + F11にてVBE画面を開いて、以下コードをコピペしましょう。
Sub checkboxjoken() 'チェックボックス条件分岐
Dim ws As Worksheet
Set ws = Worksheets("samplesheet")
Dim chkbox As CheckBox
Set chkbox = ws.CheckBoxes("Check Box 1")
Dim a As Long, b As Long, kekka As Long
a = ws.Range("A1").Value
b = ws.Range("B1").Value
'チェックボックスがONの場合は掛け算、OFFの場合は足し算を実行
If chkbox.Value = 1 Then
kekka = a * b
Else
kekka = a + b
End If
'C列に結果を表示
ws.Range("C1").Value = kekka
End Sub
コードのAlt+F8を押し、マクロ選択画面でcheckboxjoken関数を実行します。
このコードでは、以下のような処理を行っています。
1. samplesheetのワークシートオブジェクトを取得
2. “Check Box 1″という名前のチェックボックスオブジェクトを取得
3. A1セルとB1セルの値を変数a, bに格納
4. チェックボックスの状態に応じて、掛け算または足し算を実行し、結果をkekka変数に格納
5. C1セルにkekka変数の値を表示
まとめ VBAマクロでチェックボックスの判定を取得(ユーザーフォーム:シート:ifなど)する方法、
この記事では、VBAマクロでチェックボックスの判定を取得(複数:セル:ユーザーフォーム:シート:ifなど)する方法、について解説しました。
マクロの扱いになれ、さらに快適な生活を送っていきましょう!