【エクセルマクロ】空白セルを左詰め・右詰めにする:使用例3選

VBA-空白セルを左詰め右詰め-アイキャッチ ExcelVBA

エクセルマクロで、空白セルを左詰め・右詰めにするVBAコードをご紹介します。

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

空白セルを左詰め(指定列)

以下のExcelVBAを実行すると、指定列にあるデータについて空白セルを左に詰めます。


Sub 空白を左詰で削除()

    Range("A:E").SpecialCells(xlCellTypeBlanks).Delete Shift:=xlToLeft

End Sub

 

マクロ実行後

A~E列のデータについて、

空白セルを左側に詰めて表示します。


 

空白セルを左詰め(指定範囲)

以下のExcelVBAを実行すると、特定範囲にあるデータについて空白セルを左に詰めます。


Sub 空白を左詰で削除()

    Dim MyRng As Range
    
    Set MyRng = Range("A1:E3")

    MyRng.SpecialCells(xlCellTypeBlanks).Delete Shift:=xlToLeft
    
End Sub

 

マクロ実行後

セル範囲[A1:E3] のデータについて、

空白セルを左側に詰めて表示します。


 
 

空白セルを右詰め(指定範囲)

以下のExcelVBAを実行すると、指定範囲にあるデータについて空白セルを右に詰めます。


Sub 空白を右詰()

    Dim MyList As Variant
    Dim i As Long
    Dim j As Long
    Dim s As Long

    '指定範囲内のデータを配列に格納
    MyList = ActiveSheet.Range("A1:E7")
    
    '指定の範囲のデータをクリア
    ActiveSheet.Range("A1:E7").ClearContents
    
    '二次元配列をループ
    For i = 1 To UBound(MyList)
        
        '転記開始列:E列(列番号:5)
        s = 5
    
        '逆ループ
        For j = 5 To 1 Step -1
    
            '二次元配列のデータが空白じゃなければ
            If MyList(i, j) <> "" Then
                '配列のデータをセルに転記
                Cells(i, s) = MyList(i, j)
                '転記開始列を更新
                s = s - 1
            End If
        Next j
    Next i

End Sub

 

マクロ実行後

セル範囲[A1:E7] のデータについて、

空白セルを右側に詰めて表示します。


 
 

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

【エクセルマクロ】ワークシート処理を自動化する:超便利39選
...

 

「Excelの本当に正しい使い方」
あの人気エクセル講師 田中先生の書籍★
根本から学べるので、一生使える“本物のスキル” が身に付く!