【VBA入門】行・列の削除とクリアをする方法

Excel VBAでは不要な行を削除したり、値が重複する行を削除したりできます。

この記事では、Excel VBA で行・列を削除する方法について

  • 行・列を削除する方法
  • 行・列の値をクリアする方法

といった基本的な内容から、値が重複する行を削除する方法など応用的な使い方についても解説していきます。本記事でも登場する Rangeについて詳しく知りたい方はこちらを参照してください!

行を削除する方法

Rows.Delete で行を削除する方法

Excel VBA では Rows.Deleteを使って指定した行を削除できます。

[書式] 次の例では 1 行目を削除するために Rows(1).Deleteと記述しています。

[使用例] [実行結果] image11

画像では、上の例をボタンが押されたときに実行しています。1 行目が正しく削除されていますね。

Range.Delete で複数の行をまとめて削除する方法

Excel VBAではRange.Deleteを使って範囲内の行をまとめて削除できます。

[書式] 次の例では1から3行目を削除するために Range(“1:3”).Deleteと記述しています。

[使用例] [実行結果] image12

画像では、サンプルをボタンが押されたときに実行しています。1から3行目が正しく削除されていますね。

Range.EntireRow.Delete で行を削除する方法

Excel VBAではRange.EntireRow.Deleteを使って指定した範囲を含む行を削除できます。

image00er

画像は、Excel 上で セルを選択した後 Shift + Spaceキーを押しています。Range.EntireRowは、このように指定範囲を含む行全体というイメージです。

[書式] 次の例では B2 セルを含む行を削除するために Range(“B2”).EntireRow.Deleteと記述しています。

[使用例] [実行結果] image13

画像では、上の例をボタンが押されたときに実行しています。B2セルを含む2行目が正しく削除されていますね。また、2つのセルで指定した範囲を含む行を削除できます。

[書式] 次の例ではB2からC3の範囲を含む行を削除するためにRange(“B2:C3”).EntireRow.Deleteと記述しています。

[使用例] [実行結果] image14

画像では、上の例をボタンが押されたときに実行しています。B2からC3の範囲を含む2から3行目が正しく削除されていますね。

列を削除する方法

Columns.Delete で列を削除する方法

Excel VBAではColumns.Deleteを使って指定した列を削除できます。

[書式] 次の例では1列目を削除するために Columns(1).Deleteと記述しています。

[使用例] [実行結果] image21

画像では、上の例をボタンが押されたときに実行しています。1列目が正しく削除されていますね。

Range.Delete で複数の列をまとめて削除する方法

Excel VBA ではRange.Deleteを使って範囲内の列をまとめて削除できます。

[書式] 次の例ではAからC列を削除するためにRange(“A:C”).Deleteと記述しています。

[使用例] [実行結果] image22

画像では、上の例をボタンが押されたときに実行しています。A から C 列が正しく削除されていますね。

Range.EntireColumn.Delete で列を削除する方法

Excel VBAではRange.EntireColumn.Delete<を使って指定した範囲を含む列を削除できます。

image00ec

画像は、Excel 上で セルを選択した後Ctrl + Spaceキーを押しています。Range.EntireColumnは、このように指定範囲を含む列全体というイメージです。

[書式] 次の例ではB2 セルを含む列を削除するためにRange(“B2”).EntireColumn.Deleteと記述しています。

[使用例] [実行結果] image23

画像では、上の例をボタンが押されたときに実行しています。セルB2を含むB列が正しく削除されていますね。また2 つのセルで指定した範囲を含む列を削除できます。

[書式] 次の例ではB2 から C3 の範囲を含む列を削除するためにRange(“B2:C3”).EntireColumn.Deleteと記述しています。

[使用例] [実行結果] image24

画像では、上の例をボタンが押されたときに実行しています。B2 から C3 の範囲を含む B から C 列が正しく削除されていますね。

行の値をクリアする方法

Rows.Clear で行の値をクリアする方法

Excel VBAではRows.Clearを使って指定した行の値をクリアできます。

[書式] 次の例では1行目の値をクリアするためにRows(1).Clearと記述しています。

[使用例] [実行結果] image31

画像では、上の例をボタンが押されたときに実行しています。1行目の値が正しくクリアされていますね。

Range.Clear で複数の行の値をまとめてクリアする方法

Excel VBAではRange.Clearを使って範囲内の行の値をまとめてクリアできます。

[書式] 次の例では1 から 3 行目の値をクリアするためにRange(“1:3”).Clearと記述しています。

[使用例] [実行結果] image32

画像では、サンプルをボタンが押されたときに実行しています。1 から 3 行目の値が正しくクリアされていますね。

Range.EntireRow.Clear で行の値をクリアする方法

Excel VBA ではRange.EntireRow.Clearを使って指定した範囲を含む行の値をクリアできます。

[書式] image00er

画像は、Excel 上で セルを選択した後Shift + Spaceキーを押しています。Range.EntireRowは、このように指定範囲を含む行全体というイメージです。

次の例ではB2 セルを含む行の値をクリアするためにRange(“B2”).EntireRow.Clearと記述しています。

[使用例] [実行結果] image33

画像では、上の例をボタンが押されたときに実行しています。セルB2を含む2行目の値が正しくクリアされていますね。

また2 つのセルで指定した範囲を含む行の値をクリアできます。

[書式] 次の例ではB2からC3の範囲を含む行の値をクリアするためにRange(“B2:C3”).EntireRow.Clearと記述しています。

[使用例] [実行結果] image34

画像では、上の例をボタンが押されたときに実行しています。B2からC3の範囲を含む 2 から 3 行目の値が正しくクリアされていますね。

列の値をクリアする方法

Columns.Clear で列の値をクリアする方法

Excel VBA ではColumns.Clearを使って指定した列の値をクリアできます。

[書式] 次の例では1 列目の値をクリアするためにColumns(1).Clearと記述しています。

[使用例] [実行結果] image41

画像では、上の例をボタンが押されたときに実行しています。1 列目の値が正しくクリアされていますね。

Range.Clear で複数の列の値をまとめてクリアする方法

Excel VBA ではRange.Clearを使って範囲内の列の値をまとめてクリアできます。

[書式] 次の例ではAからC列の値をクリアするためにRange(“A:C”).Clearと記述しています。

[使用例] [実行結果] image42

画像では、上の例をボタンが押されたときに実行しています。AからC列の値が正しくクリアされていますね。

Range.EntireColumn.Clear で列の値をクリアする方法

Excel VBA ではRange.EntireColumn.Clearを使って指定した範囲を含む列の値をクリアできます。

image00ec

画像は、Excel 上で セルを選択した後 Ctrl + Space キーを押しています。Range.EntireColumnは、このように指定範囲を含む列全体というイメージです。

[書式] 次の例ではB2セルを含む列の値をクリアするためにRange(“B2”).EntireColumn.Clearと記述しています。

[使用例] [実行結果] image43

画像では、サンプルをボタンが押されたときに実行しています。セルB2を含むB列の値が正しくクリアされていますね。

また 2 つのセルで指定した範囲を含む列の値をクリアできます。

[書式] 次の例ではB2からC3の範囲を含む列の値をクリアするためにRange(“B2:C3”).EntireColumn.Clearと記述しています。

[使用例] [実行結果] image44

画像では、上の例をボタンが押されたときに実行しています。B2からC3の範囲を含む B から C 列の値が正しくクリアされていますね。

重複する行を削除する

Range.RemoveDuplicates で重複する行を削除する方法

Excel VBA ではRange.RemoveDuplicatesで重複する行を削除できます。

[書式] 例えば、社員の出張について名前、日付、場所をまとめた名簿があるとします。

image00tbl

ここでは名前・日付・場所の全てが重複する行を削除するためRange(“A:C”).RemoveDuplicates(Array(1, 2, 3))と記述しています。Range(“A:C”)の部分は削除する範囲を表し、Array(1, 2, 3)の部分は重複を調べる列を表しています。

[使用例] [実行結果] image51

画像では、上の例をボタンが押されたときに実行しています。名前・日付・場所の全てが6行目と重複する7行目が削除できていますね。

もう一つ同じ書式を使用した別の例を用意しました。ここでは名前と場所が重複する行を削除するためRange(“A:C”).RemoveDuplicates(Array(1,3))と記述しています。

この2つの例を比較して理解を深めましょう!

[使用例] [実行結果] image52

画像では、上の例をボタンが押されたときに実行しています。名前・場所が1行目と重複する5行目、そして6行目と重複する7行目が削除できていますね。

まとめ

いかがでしたか?

今回は Excel VBA で行・列を削除する方法について解説しました。RemoveDuplicatesを使えば、名簿などのデータから重複する行だけを削除できるので、ぜひ活用してくださいね。

もし Excel VBA で行・列を削除する方法を忘れてしまったら、この記事を思い出してください!

LINEで送る
Pocket

最短でエンジニアを目指すなら侍エンジニア塾

cta_under_bnr

侍エンジニア塾は業界で初めてマンツーマンレッスンを始めたプログラミングスクールです。これまでの指導実績は16,000名を超え、未経験から数多くのエンジニアを輩出しています。

あなたの目的に合わせてカリキュラムを作成し、現役エンジニア講師が専属であなたの学習をサポートするため効率よく学習を進めることができますよ。

無理な勧誘などは一切ありません。まずは無料体験レッスンを受講ください。

無料体験レッスンの詳細はこちら

書いた人

イシキ マコト

イシキ マコト

フリーランスのエンジニアです。
最近では、プログラミング関連の記事を作成するライターとしても活動しています。

趣味と業務の両方でプログラミング言語をいくつも学んできたので
その経験を活かして分かりやすい記事を作成できればと考えています。

おすすめコンテンツ

あなたにぴったりなプログラミング学習プランを無料で診断!

プログラミング学習の効率を劇的に上げる学習メソッドを解説