Excel VBA テクニック集
空白列の削除





Excel VBA テクニック集

空白列の削除方法です。

使い方は、ファイル一覧を使った応用の、「マクロ専用ファイル」によるマクロ実行に、下記コードを入れます。

たとえば下記表において、利用している領域は、B2:L9になります。その内、空白列はF:F列・K:L列になります。 空白列を判定し、削除する方法です。
    Dim Union_Obj As Object
    Dim StartRow_Frm As Long 
    Dim EndRow_Frm As Long
    Dim StartColm_Frm As Integer 
    Dim EndColm_Frm As Integer
    Dim Empty_B As Boolean
    Dim I As Long
    Dim J As Integer
    
    '利用領域、開始行
    StartRow_Frm = Excel_App.ActiveSheet.UsedRange.Row
    '最終行
    EndRow_Frm = StartRow_Frm + Excel_App.ActiveSheet.UsedRange.Rows.Count - 1
    '開始列番号
    StartColm_Frm = Excel_App.ActiveSheet.UsedRange.Column
    '終了列番号
    EndColm_Frm = StartColm_Frm + Excel_App.ActiveSheet.UsedRange.Columns.Count - 1
    
    Set Union_Obj = Nothing
    For J = StartColumn_Frm To EndColumn_Frm
        Empty_B = True
        For I = 1 To EndRow_Frm
            'セルにデータが入っているかどうかの判定
            If Not IsEmpty(Excel_App.ActiveSheet.Cells(I, J).Value) Then
                Empty_B = False
                Exit For
                End If
            Next I
        If Empty_B = True Then
            'ここで下記のように、複数の領域の選択した状態にする
            If Union_Obj Is Nothing Then
                Set Union_Obj = Excel_App.ActiveSheet.Columns(J).EntireColumn
                Else
                Set Union_Obj = Excel_App.Application.Union(Union_Obj, Excel_App.ActiveSheet.Columns(J).EntireColumn)
                End If
            End If
        DoEvents
        Next J

    If Not Union_Obj Is Nothing Then
        '選択した領域を削除
        Union_Obj.Delete
        End If

複数の領域の選択


マクロを実行すると、下記のようになります。


「こだわりハウス」写真館| 数学公式集| ピンポイントストリートビュー| FaceBook| Excel Vba テクニック集| Excel 計算式解析・他解析| 富山の建築家| Excel 計算式解析・他解析| 積分の定義・積分の記号の意味の研究|