【エクセルマクロ】空白セルを詰めて別シート転記:動画あり

ExcelVBA-空白セルを詰めて別ファイル転記-アイキャッチ ExcelVBA

エクセルマクロで、空白セルを詰めて別シート転記するVBAコードをご紹介します。

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

空白セルを詰めて別シート転記

以下のExcelVBAを実行すると、空白行を上詰めして転記します。


Sub 空欄をつめて別シート抽出()

Dim LastRow As Long
Dim LastClm As Long
Dim i As Long
Dim j As Long
Dim Q As Long

    '最終行を取得
    LastRow = Cells(Rows.Count, 1).End(xlUp).Row
    
    '最終列
    LastClm = Range("A1").End(xlToRight).Column
    
    Q = 1

    '1~最終行までループ
    For i = 1 To LastRow
    
        For j = 1 To LastClm
        
            If Cells(i, j) <> "" Then
            
                Range(Cells(i, 1), Cells(i, LastClm)).Copy Sheets("Sheet2").Cells(Q, 1)
                Q = Q + 1
                Exit For
            
            End If
        Next j
    Next i

 End Sub

 

マクロ実行前

「Sheet1」の空白セルがわかりやすいように色付けしています。


 

マクロ実行後

空欄の行を詰めて、別のシートへ転記します。


 

空白セルを詰めて別シート転記(全セルを詰める)

以下のExcelVBAを実行すると、配列を使用して空白セルを上詰めして指定シートへ転記します。


Sub 空白を上につめて別シート抽出()

Dim i As Long
Dim j As Long
Dim CntA As Long
Dim CntB As Long
Dim MyList As Variant
Dim ChkList As Variant
Dim Sht1 As Worksheet
Dim Sht2 As Worksheet

    Set Sht1 = Sheets("Sheet1")
    Set Sht2 = Sheets("Sheet2")

    CntA = 1
    CntB = 1

    'A~F列のデータを配列格納
    MyList = Sht1.Range("A1", Range("A" & Rows.Count). _
                     End(xlUp)).Resize(, 6).Value

    '配列の大きさ指定
    ReDim ChkList(6, UBound(MyList))

    '配列ループ
    For i = 1 To Sht1.Range("A1").End(xlToRight).Column

        For j = 1 To UBound(MyList)

            '配列が空欄じゃなければ
            If MyList(j, i) <> "" Then

                '配列「ChkList」に値追加
                ChkList(CntA, CntB) = MyList(j, i)
                CntB = CntB + 1

            End If
        Next j

        CntA = CntA + 1
        CntB = 1

    Next i

    '二次元配列をSht2に転記
    For i = 1 To UBound(ChkList)
        For j = 1 To UBound(MyList)
            Sht2.Cells(j, i) = ChkList(i, j)
        Next j
    Next i
 End Sub

 

マクロ実行後

すべての空欄のセルを詰めて、別シートへ転記します。


 
 
動画の解説もぜひご覧ください!

この記事がお役に立てれば幸いです。
 
 

「ノンプログラマーのGAFA部長が教えるExcelマクロ入門」
挫折につながるエラーの原因も先回りして丁寧に解説
マクロのたった1割を学べばエクセル業務の9割以上は効率化できる