Excel で条件に基づいて列を削除する VBA マクロ (8 つの例)
VBA マクロの実装 は、Excel で操作を実行するための最も効果的、迅速かつ安全な方法です。この記事では、Excel で VBA マクロ を使用して基準に基づいて列を削除する方法を紹介します。 .
ワークブックをダウンロード
ここから無料の練習用 Excel ワークブックをダウンロードできます。
汎用構文
VBA を使用して Excel で列を削除する一般的な構文
列(列番号/列アドレス).削除
Excel で基準に基づいて列を削除する VBA マクロを使用した 8 つの例
このセクションでは、セル値、別のワークシート、および VBA を使用したテーブルに基づいて列を削除する方法を学習します。 マクロ
以下のデータセットを例として使用します。
基準 1:Excel のセル値に基づいて列を削除する VBA マクロ
セル値に基づく列を削除する手順 VBA を使用した Excel
手順:
- Alt + F11 を押します キーボードで、またはタブ Developer -> Visual Basic に移動します Visual Basic Editor を開く .
- ポップアップ コード ウィンドウで、メニュー バーから [挿入] -> [モジュール] をクリックします。 .
- 次のコードをコピーして、コード ウィンドウに貼り付けます。
Sub DeleteColumnsBasedOnCellValue()
Dim iCol As Long
Dim iWrk As Long
iCol = 10
For iWrk = iCol To 1 Step -1
If Cells(1, iWrk) = 2 Then
Columns(iWrk).Delete
End If
Next
End Sub
コードを実行する準備ができました。
このコードは、セル値 2 で始まる列を削除します .
- F5 を押します キーボードまたはメニュー バーから Run -> Run Sub/UserForm を選択します . 小さな再生アイコンをクリックすることもできます サブメニュー バーでマクロを実行します。
結果を以下に示します。
セル値 2 で始まる列 削除されます。
続きを読む: Excel で列を削除する VBA
基準 2:Excel の空白セルに基づいて列を削除する VBA マクロ
セルが空白の列を削除する手順 VBA を使用した Excel で
手順:
- 前と同じように、Visual Basic Editor を開きます 開発者から タブと挿入 モジュール コード ウィンドウで。
- コード ウィンドウで、次のコードをコピーして貼り付けます。
Sub DeleteBlankCells()
Range("A1:J10").Select '//range of the dataset
Selection.SpecialCells(xlCellTypeBlanks).Select
Selection.EntireColumn.Delete
End Sub
コードを実行する準備ができました。
- 走る
空白セルを含むすべての列 現在削除されています。
基準 3:Excel で空白の列を削除する VBA マクロ
空白の列で構成される次のデータセットを見てください。これらの空白の列を削除する方法を見ていきます VBA を使用した Excel マクロ。
手順:
- 前と同じように、Visual Basic Editor を開きます 開発者から タブと挿入 モジュール コード ウィンドウで。
- コード ウィンドウで、次のコードをコピーして貼り付けます。
Sub DeleteBlankCol()
Dim i As Integer
For i = 1 To 4
Columns(i + 1).Delete
Next i
End Sub
コードを実行する準備ができました。
- 走る
すべての空白の列 削除されます。
続きを読む: Excel で空白の列を削除する
基準 4:Excel で隣接していない列を削除する VBA マクロ
隣接していない複数の列を削除する手順 VBA を使用した Excel
手順:
- 前と同じように、Visual Basic Editor を開きます 開発者から タブと挿入 モジュール コード ウィンドウで。
- コード ウィンドウで、次のコードをコピーして貼り付けます。
Sub DeleteNAdjCol()
Range("C:E, G:I").Delete
End Sub
コードを実行する準備ができました。
- 走る
C から E (2 月から 4 月) までの以前のすべての列 および G to I (6 月から 8 月) 削除されました。
類似の読み方:
- Excel で未使用の列を削除する方法 (最も簡単な 5 つの方法)
- 数式に影響を与えずに Excel で列を削除する (2 つの方法)
- Excel で重複した列を削除する方法 (6 つの方法)
基準 5:Excel の特定のワークシートに基づいて列を削除する VBA マクロ
特定のワークシートから列を削除する手順 VBA を使用した Excel で
手順:
- 前と同じように、Visual Basic Editor を開きます 開発者から タブと挿入 モジュール コード ウィンドウで。
- コード ウィンドウで、次のコードをコピーして貼り付けます。
Sub DeleteColFromSheet()
Worksheets("New Column").Select '// set the sheet name
Columns("D:F").Delete
End Sub
コードを実行する準備ができました。
- 走る
D から F (3 月から 5 月) までの以前のすべての列 「新しいコラム」から ” ワークシートが削除されました。
基準 6:Excel のテーブルに基づいて列を削除する VBA マクロ
テーブルから列を削除する手順 VBA を使用した Excel で
手順:
- 前と同じように、Visual Basic Editor を開きます 開発者から タブと挿入 モジュール コード ウィンドウで。
- コード ウィンドウで、次のコードをコピーして貼り付けます。
Sub DeleteColTable()
Dim srcTable As ListObject
Dim srcSheet As Worksheet
'Set the table from which column is to be deleted
Set srcTable = ActiveSheet.ListObjects("ExTable")
'Set the sheet that contains the table
Set srcSheet = Sheet8
With srcSheet
srcTable.ListColumns(5).Delete
End With
End Sub
コードを実行する準備ができました。
- 走る
第 5 列(4 月) はテーブルから削除されます。
基準 7:Excel のテーブルに基づいて複数の列を削除する VBA マクロ
複数を削除する手順 VBA を使用した Excel のテーブルの列
手順:
- 前と同じように、Visual Basic Editor を開きます 開発者から タブと挿入 モジュール コード ウィンドウで。
- コード ウィンドウで、次のコードをコピーして貼り付けます。
Sub DeleteMColTable()
Dim srcTable As ListObject
Dim srcSheet As Worksheet
Dim i As Integer
'Set the table from which column is to be deleted
Set srcTable = ActiveSheet.ListObjects("ExTable2")
'Set the sheet that contains the table
Set srcSheet = Sheet9
'Run the loop twice as we need to delete 2 columns
For i = 1 To 2
With Source
srcTable.ListColumns(5).Delete
End With
Next i
End Sub
コードを実行する準備ができました。
- 走る
5 列目と 6 列目 (4 月と 5 月) テーブルから削除されました。
続きを読む: Excel で複数の列を削除する方法
基準 8:Excel の列ヘッダーに基づいてテーブルから列を削除する VBA マクロ
列ヘッダーに基づいてテーブルから列を削除する手順 VBA を使用した Excel で
手順:
- 前と同じように、Visual Basic Editor を開きます 開発者から タブと挿入 モジュール コード ウィンドウで。
- コード ウィンドウで、次のコードをコピーして貼り付けます。
Sub DeleteColHeaderTable()
Dim srcTable As ListObject
Dim srcSheet As Worksheet
Dim i As Integer
Dim colName As String
'Set the table from which column is to be deleted
Set srcTable = ActiveSheet.ListObjects("ExTable3")
'Set the sheet that contains the table
Set srcSheet = Sheet10
'Case sensitive
colName = "Apr"
'Loop through all the columns in the table
For i = 1 To srcTable.ListColumns.Count
With srcSheet
'Check the column header
If srcTable.ListColumns(i).Name = colName Then
srcTable.ListColumns(i).Delete
Exit For
End If
End With
Next i
End Sub
コードを実行する準備ができました。
- 走る
列ヘッダー 命名 4月 はテーブルから削除されます。
結論
この記事では、VBA マクロを使用して、Excel で 8 つの異なる基準に基づいて列を削除する方法を説明しました。 この記事があなたにとって非常に有益であることを願っています。このトピックに関する質問はお気軽にどうぞ。
こちらもご覧ください
- 数式を削除せずに Excel の内容をクリアする方法 (3 つの方法)
- Excel で余分な列を削除する (7 つの方法)
-
Excel VBA:オートフィルターが存在する場合は削除する (7 つの例)
マイクロソフト エクセル オートフィルターを削除する複数の方法を提供します ワークシートから または Excel テーブル。 この記事では、 7 について学びます。 オートフィルターが存在する場合はそれを削除するメソッド VBA スクリプトを使用して Excel で。 次のリンクから Excel ファイルをダウンロードして、それに沿って練習できます。 Excel に AutoFilter が存在する場合、VBA を使用して AutoFilter を削除する 7 つの例 1.存在する場合、アクティブなワークシートからオートフィルターを削除します 次のスクリーンショットは AutoFilt
-
Excel で基準に基づいて行を列に転置する方法 (2 つの方法)
通常、 TRANSPOSE 関数は、行を列に変換するためによく使用されます。ただし、一意の値など、特定の基準に応じた結果は返されません。このチュートリアルでは、Excel の条件に基づいて行を列に転置する方法を紹介します。 Excel で基準に基づいて行を列に転置する 2 つの便利な方法 以下の図には、いくつかの製品とその数量のデータセットが含まれています。 行は列に置き換えられます。 基準に基づいて行を列に入れ替えます 別のセルにいくつかの重複するエントリがあるため、一意の値の。まず、INDEX を使用します 、マッチ 、COUNTIF 、IF 、および IFERROR 数式を作成す