【VBA】指定した行・列全体を削除する | あじゅWeb

【VBA】指定した行・列全体を削除する

エクセルVBAでよく使うコードの備忘録。VBAで指定した行・列全体を削除するコード。

スポンサーリンク

行全体を削除する

行全体を削除するにはまず削除したい行のオブジェクトを取得する必要があります。これにはRowsメソッドを使うのが便利です。Rowsメソッドの使い方は簡単で、引数として取得したい行の行番号を与えてやるだけでOKです。行を取得できたら、あとはDeleteメソッドでその行を削除することができます。

なお、コードを使用する際はカッコに囲まれた部分([***])を自分のプログラムに合わせて変更してください。

行全体を削除する(Rows)

Public Sub DeleteRow1()
    
    '--- ワークシートオブジェクトを設定 ---'
    Dim ws As Worksheet
    Set ws = ThisWorkbook.Worksheets("[ワークシート名]")
    
    '--- 指定した行を削除する ---'
    ws.Rows([行番号]).Delete
    
End Sub

ちなみに、Rangeオブジェクトを使用する方法もあります。削除したい行内のセルを示すRangeオブジェクトに対してEntireRowメソッドを使用するとそのセルが含まれる行を取得できます。行が取得できたので後はDeleteメソッドで同じように削除が可能です。

行全体を削除する(Range)

Public Sub DeleteRow2()
    
    '--- ワークシートオブジェクトを設定 ---'
    Dim ws As Worksheet
    Set ws = ThisWorkbook.Worksheets("[ワークシート名]")
    
    '--- 指定したセルを含む行を削除する(A10セルなら10行目) ---'
    ws.Range("[セルのアドレス]").EntireRow.Delete
    
End Sub

列全体を削除する

列全体を削除するのも、考え方は同じです。

列全体を削除するにはまず削除したい列のオブジェクトを取得する必要があります。これにはColumnsメソッドを使うのが便利です。Columnsメソッドの使い方は簡単で、引数として取得したい列の列番号を与えてやるだけでOKです。列を取得できたら、あとはDeleteメソッドでその列を削除することができます。

列全体を削除する(Columns)

Public Sub DeleteColumn1()
    
    '--- ワークシートオブジェクトを設定 ---'
    Dim ws As Worksheet
    Set ws = ThisWorkbook.Worksheets("[ワークシート名]")
    
    '--- 指定した列を削除する ---'
    ws.Columns([列番号]).Delete
    
End Sub

列全体を削除する(Range)

Public Sub DeleteColumn2()
    
    '--- ワークシートオブジェクトを設定 ---'
    Dim ws As Worksheet
    Set ws = ThisWorkbook.Worksheets("[ワークシート名]")
    
    '--- 指定したセルを含む列を削除する(A10セルなら1列目) ---'
    ws.Range("[セルのアドレス]").EntireColumn.Delete
    
End Sub