Excelマクロ入門。不要な行を(AまたはB)の条件で削除するマクロ。

  • URLをコピーしました!

データ処理をするときに「いらないなー」という余計なデータもあります。ただ、データ数が多ければ、処理にかかる手間もそれなりです。

その処理をマクロでやることもできます。

目次

いらないデータは最初になくす

今回の事例はこのような仕訳データです。

Screenshot

会計ソフトからCSVファイルでダウンロードできるのですが、年(年度)が違うとファイルが別になりますし、ときにはイケてない仕様も…。

合計列があったり、日付や数字が文字列になっている場合もあります。集計することを考えたら文字列にするというのは想定外ですが、仕方ありません。

ただ、最低限、データがあればなんとかできます。

日付を文字列から数字データに変換したり、いらない行を削除するなど。

それをどうやってやるか。

オートフィルターで検索して行削除するという方法もありますが、今回のお話はこれをマクロでやる方法です。

あ、ファイルをまとめる方法はこちらに。


Excelマクロ超入門 会計データを1つのシートにまとめるマクロ | GO for IT 〜 税理士 植村 豪 OFFICIAL BLOG


複数の会計データ(CSVファイル)を1つのシートにまとめる方法(バッチファイル編) | GO for IT 〜 税理士 植村 豪 OFFICIAL BLOG

複数のCSV(会計データ)やExcelファイルを1つにまとめる(結合する)方法 Excelの「取得と変換」 | GO for IT 〜 税理士 植村 豪 OFFICIAL BLOG

データのくせを見抜く

いらないデータを消すために、データのくせを見つけましょう。

月ごとに集計があるとか、

Screenshot

た、タイトル行がある場合も…。

Screenshot

空欄、タイトルや集計行があれば、データとしてのまとまりを欠くことになります。もしデータを1行でもあけると、そこまでで1つのデータとして扱われますから。

今回の場合は、

・A列が空欄になっている
・A列に「仕訳日記帳」の文字列がある
・A列に「日付」の文字列がある

どれかに該当する行があれば、削除します。
そうすることで、まとまった1つのデータとして利用することができます。

いらない行を複数条件で削除するマクロ

実際にマクロを書いてみました。

今回書いてみたマクロは、こちらです。

Screenshot

A列にあるデータの数をカウントして、最下行から順番にデータをチェック、もしA列のセルに「仕訳日記帳」「日付」の文字列がある、もしくはA列のセルが空欄だったら行削除をするという処理を繰り返します。

やり方はいろいろあるでしょうけど、前述したデータのくせをもとに書いてみました。

で、マクロで行削除するときに注意したいのは、Excelがどう反応するかです。

どういうことか。
実は一番下のデータからチェックするのには理由があります。

Excelで行削除をすると、どういう反応をするか。
たとえば3行目を削除すれば、4行目のデータが上にずれて3行目に表示されます。

そうすると、仮に4行目が空欄だったとしても、削除して3行目のデータに変わってしまっているため、チェックもれになる可能性があります。

なので、本来なら「For i = LastRow To 4 Step」として繰り返し処理を上からやるところ、「For i = LastRow To 4 Step -1」として、あえて下から繰り返し処理をするやり方にしています。

下からチェックすれば、該当データがあったときに削除をしても、それより下のデータはすでにチェック済ですから影響はないということです。

ということで、残念ながらイケてないデータがあったとしても、くせをみつけて削除すればデータとして利用できます。どうやって?を考えるのはいい勉強になります。

データさえあればなんとかなります。
これが紙だと…。

ということで、データ整理の1つのやり方として参考にしていただければ。


【編集後記】
昨日は午後から個別コンサルティング2コマ。途中トラブルあり苦戦しましたけどなんとか。夕食は宅配ピザでした。久々だったからか、おいしかったからか子どもたちには好評でした。また食べたいと。

【昨日の1日1新】
※「1日1新」→詳細はコチラ
Amazon 72mmレンズフィルター


この記事が気に入ったら
いいね または フォローしてね!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次