【エクセルマクロ】チェックしたデータ自動転記 5選:動画あり

エクセルマクロ_チェックボックスでチェックした値を自動抽出_アイキャッチ ExcelVBA

エクセルマクロで、チェックボックスにチェックを入れたデータを自動転記するVBAコードをご紹介します。

このページのマクロコードは、コピペで使えます。
ぜひ、お試しください。

チェックしたデータ自動転記①

以下のマクロを実行すると、チェックボックスでレ点を入れた文字を転記します。


Sub チェックボックスのチェックをいれたものだけ抽出()

Dim cb As checkbox
Dim i As Long
Dim j As Long

    i = 2
    j = 2

    'チェックボックスをループ
    For Each cb In ActiveSheet.CheckBoxes

        'チェックボックスがオンだったら
        If cb.Value = xlOn Then

            Cells(j, 5) = Cells(i, 1).Value
            j = j + 1

        End If

        i = i + 1

    Next cb

End Sub

 

マクロ実行後

チェックボックスがONになっている値を転記しました。


 

補足

チェックボックスは「フォームコントロール」から挿入しています。


 

チェックしたデータ自動転記②

以下のマクロを実行すると、チェックボックスでレ点を入れた文字を転記します。


Sub チェックボックスのチェックをいれたものだけ抽出()

Dim cb As checkbox
Dim j As Long
Dim cbRow As String

    j = 2

    'チェックボックスをループ
    For Each cb In ActiveSheet.CheckBoxes

        'チェックボックスがオンだったら
        If cb.Value = xlOn Then

            'チェックボックスの行取得
            cbRow = Split(cb.TopLeftCell.Address, "$")(2)

            'E列に転記
            Cells(j, 5) = Cells(cbRow, 1).Value
            j = j + 1

        End If
    Next cb

End Sub

 

マクロ実行後

チェックボックスがONになっている値を転記しました。


 

補足

チェックボックスは「フォームコントロール」から挿入しています。


 

チェックしたデータ自動転記(リンクするセル)

以下のマクロを実行すると、チェックボックスでレ点を入れた値を転記します。


Sub チェックボックスのチェックを入れたものだけ入力()
 
Dim i As Long
Dim j As Long
Dim LastRow As Long

    i = 2
    j = 2

    'A列の最終行を取得
    LastRow = Cells(Rows.Count, 1).End(xlUp).Row
 
    'ループ
    For i = 2 To LastRow
 
        'C列がTRUEだったら
        If Cells(i, 3) = True Then
             
            'E列にA列の値を転記
            Cells(j, 5) = Cells(i, 1).Value
            j = j + 1
            
        End If
        
    Next
 
End Sub

 

マクロ実行後

C列が「TRUE」になっている値を転記しました。


 

すべてのチェックボックスに「リンクするセル」を設定しています。


 

チェックしたデータ自動転記(同シートに転記)

以下のマクロを実行すると、チェックボックスがオンになっている行データを転記します。


Sub チェックボックスのチェックをいれたものを転記()
  
Dim cb As checkbox
Dim i As Long
Dim j As Long
Dim Tmp() As Variant
 
    i = 0
    j = 2
  
    'チェックボックスをループ
    For Each cb In ActiveSheet.CheckBoxes
  
        'チェックボックスがオンだったら
        If cb.Value = xlOn Then
               
            '配列の要素数を指定
            ReDim Preserve Tmp(i)
            
            '配列にA~D列の値を格納
            Tmp(i) = Range(Cells(j, 1), Cells(j, 4))
            i = i + 1

        End If
         
        j = j + 1
         
    Next cb
    
    '配列に格納したデータをH列から転記
    For i = 0 To UBound(Tmp)
        Range(Cells(i + 2, 8), Cells(i + 2, 11)) = Tmp(i)
    Next i
  
End Sub

 

マクロ実行後

チェックボックスにチェックが入っている 行のデータを転記しました。


 
 

チェックしたデータ自動転記(別シートに転記)

以下のマクロを実行すると、チェックボックスがオンになっているデータを別シートへ転記します。


Sub チェックボックスのチェックをいれたものを転記()
  
Dim St1 As Worksheet
Dim St2 As Worksheet
Dim cb As checkbox
Dim i As Long
Dim j As Long
Dim Tmp() As Variant
 
    i = 0
    j = 2
    Set St1 = Sheets("Sheet1")
    Set St2 = Sheets("転記先")
    
    St1.Select
  
    'チェックボックスをループ
    For Each cb In St1.CheckBoxes
  
        'チェックボックスがオンだったら
        If cb.Value = xlOn Then
               
            '配列の要素数を指定
            ReDim Preserve Tmp(i)
            
            '配列にA~D列の値を格納
            Tmp(i) = St1.Range(Cells(j, 1), Cells(j, 4))
            i = i + 1

        End If
         
        j = j + 1
         
    Next cb
    
    '配列に格納したデータを別シートに転記
    St2.Select
    
    For i = 0 To UBound(Tmp)
        St2.Range(Cells(i + 2, 1), Cells(i + 2, 4)) = Tmp(i)
    Next i
  
End Sub

 

マクロ実行後

チェックボックスにチェックが入っているデータを 別シートへ転記しました。


 
 
この記事がお役に立ちますと幸いです。
 
・【エクセルマクロ】チェックボックス処理を自動化まとめ
 

【エクセルマクロ】チェックボックスを自動操作:使用例16選
...

 

「たった1秒で仕事が片づくExcel自動化の教科書【増強完全版】」
「5時間かかる作業が3時間でできます」ではなく「1秒で終わらせます」へ
毎日の業務を瞬時に終わらせるしくみを解説