【エクセルマクロ】チェックしたデータ自動転記:作業効率アップ

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

エクセルマクロで、チェックボックスにチェックを入れたデータを自動転記する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 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
マクロ実行後

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


 
 

【エクセルマクロ】チェックボックスを自動操作する:超便利10選
...