Excel

【Excel】VBAマクロでチェックボックスの判定を取得(複数:セル:ユーザーフォーム:シート:ifなど)する方法、

当サイトでは記事内に広告を含みます

この記事では【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など)する方法、について解説しました。

マクロの扱いになれ、さらに快適な生活を送っていきましょう!