目次

行を削除したい

今回の投稿では、 ExcelVBA でワークシートの指定の行を削除するマクロを作成してみました。マクロの中で、 Rows().Delete の記述を使用しています。

2 行目の行が削除されている。 B の入力されていた行です。
2 行目の行が削除されている。 B の入力されていた行です。

マウス・キーボード操作で行の削除を行う場合は、以下の画像のように、行番号を選択して、右クリックから削除を行いますね。今回作成するマクロで、同じ操作を行ってみます。

マウス・キーボード操作で行を削除。
マウス・キーボード操作で行を削除。

目次まで戻る

Rows().Delete

早速、行を削除するマクロを書いてみました。現在のワークシートの 2 行目を削除するマクロです。「ActiveSheet」が、現在のワークシート、「Rows(2)」が 2 行目という意味になっています。現在のワークシートの 2 行目が操作対象になります。「Delete」メソッドで削除を実行しています。

Sub 行を削除するマクロ()

ActiveSheet.Rows(2).Delete

End Sub

下記の画像の状態で、上記のマクロを実行してみます。 B が入力されている 2 行目が削除されるはずですね。

行を削除する前のワークシートです。
行を削除する前のワークシートです。

マクロを実行してみると、下記の画像の結果になりました。 2 行目が削除されていますね。削除の確認メッセージなどは表示されず削除されました。

行を削除した後のワークシート。
行を削除した後のワークシート。

目次まで戻る

複数行を削除したい

複数行を削除したい場合もありますね。以下のマクロのコードを作成してみました。 Rows("2:4") で、 2 ~ 4 行目を指定しています。

 Sub 複数行を削除するマクロ()

ActiveSheet.Rows("2:4").Delete

End Sub

以下の画像のワークシート上で、マクロを実行してみます。 1 ~ 5 行目に A ~ E の値が入力されています。

複数行を削除する前のワークシート。
複数行を削除する前のワークシート。

マクロを実行してみると、以下のような結果になりました。 2 ~ 4 行目の B ~ D の値が入力されていた行が削除されています。

複数行を削除した後のワークシートです。
複数行を削除した後のワークシートです。

目次まで戻る

テスト環境

  • Windows 10
  • Microsoft Office Excel 2003

目次まで戻る

あとがき

私の場合、シート指定を行わず、 Rows().Delete してしまい、思わぬシートのデータが削除されたこともあったように思います。マクロで行った操作は、アンドゥ Undo ができないですからね。

Sub 指定のワークシートの行を削除するマクロ()

Worksheets("削除対象のシート").Rows(2).Delete

End Sub
削除対象のシートから行が削除されている。
削除対象のシートから行が削除されている。

以上閲覧ありがとうございました。

目次まで戻る

同じカテゴリの投稿(Excel VBA)

前後の投稿