ある条件に一致した特定の列を削除するサンプルコードです。最終的な集計をする際に、不要な列を削除したい場合などに応用可能です。
今回はサンプルファイルからサンプルシート03(下図)を使いますので、準備をしておいてくださいね。
サンプルシート03の補足です。
項目「棚卸資産」は、お隣のC列とD列を掛け合わせたものです。ありがちな話ですが、Excelシート上で分析作業をする場合、適宜計算結果を表示するための列を挿入して使いますよね。
このようなExcelシートを整形する場合、もともとあったデータで計算できる項目は不要になることが多いです。今回の例でも、E列が無くてもC列とD列さえデータとして集計しておけば、後で必要な時に計算で求められます。
というわけで、今回はデータ整形の段階で、不要なE列を削除するVBAコードを紹介したいと思います。
では、前置きが長くなりましたが、今回のコードを真似て書いてみましょう。
では実行してみてください。上手く「棚卸資産」の列が削除されましたでしょうか?上手くいけばサンプルシート01と同じになります。
それでは引き続きコードのお話しにいきましょう。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | Option Explicit '「棚卸資産」の列を削除する Sub Sample030() Dim lngECol As Long 'データ範囲最終列番号用変数 Dim c As Integer '列ルーチン処理用変数 'データ範囲最終列番号取得 lngECol = Range("XFD1").End(xlToLeft).Column '列ルーチン処理 For c = lngECol To 1 Step -1 '1行目の項目名が「棚卸資産」の場合に列削除 If Cells(1, c) = "棚卸資産" Then '列削除 Cells(1, c).EntireColumn.Delete End If Next End Sub |
15~20行目:If Cells(1, c) = "棚卸資産" Then ~ End If
ここでは、1行目見出し用セル(項目表示)の内容が、「棚卸資産」であった場合、Then以降を実行しなさいということです。これにより、目的の「棚卸資産」の列が、VBAコード18行目により削除され、その結果サンプルシート01と同じになったというわけです。
まとめ
今回は、データ整形の際に、不要な列の削除方法についてお話ししました。