エクセルVBA(マクロ)
特定の文字が含まれた列を一瞬で削除する方法
こんにちは、シバマメです!
本日も簡単で便利なエクセルのマクロを紹介します。
会社のシステムから出力したCSVデータやエクセルデータ、
非常に便利ですね。
会社で出力できるデータは、いろんな要望が集められて、
沢山の有益な情報がつまっていると思います。
でも、自分の知りたいことよりも、過剰な情報がはいっている場合があります。
例えば、毎月の売上金額だけ知りたいのに、
下の表のように、売上と販売数量が交互にでてくるタイプとか。
手作業で、販売数量の列を消していく必要があります。
1回なら良いですが、この表を使用するたびに、
毎回作業するとなると、結構手間ですよね。
簡単なVBAのコードで、自動化できます。
個人用マクロブックに保存しておくと、いつでも使えて便利です!
個人用マクロブックの作成方法は、下記をご確認ください。
[個人用マクロブックの作成方法]
特定の文字が含まれた列を一瞬で削除するエクセルマクロ
手順
-
- 個人用マクロブックに下記のコードをコピーペースト
[個人用マクロブックにコードを記入する方法] - F5キーか、▶ボタンでマクロを実行
一瞬で、販売数のみなったと思います。
- 個人用マクロブックに下記のコードをコピーペースト
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
Sub RetsuKeshi() Dim MaxRow As Long Dim i As Long Dim MaxCol As Long MaxRow = Cells(Rows.Count, 1).End(xlUp).Row MaxCol = Cells(1, Columns.Count).End(xlToLeft).Column For i = 1 To MaxCol Cells(1, i).Select If ActiveCell.Value Like "*販売金額*" Then 'If ActiveCell.Value Like "*消費税*" Then 'If ActiveCell.Value Like "*売上金額*" Then Columns(i).Delete End If Next End Sub |
応用
下記の部分を「消したい列」に含まれる文字にすると、
いろんな表に応用できます。
例えば、反対に「販売数」のみ削除することもできます。
コードの17行目の”*販売金額*”を”*販売数*”に書き換えて実行して見てください。
応用2
使えるシーンが沢山ある場合には、
18行目、19行目のようにを先頭『’』につけて、コメント化しておくと便利。
使うときに、『’』をはずせばOKです。
コメント