Excelだけでは難しい効率化ー最大行・最終行・データ数をカウントするマクロー

  • URLをコピーしました!

Excelマクロが大活躍する場面の1つは、データ数をカウントできることです。
Excel本来の機能ではできないことも、マクロだとかんたんにできます。
スクリーンショット 2013 06 20 11 10 45

Excelでは効率化できないこと

Excelだけでは効率化できないこともあります。
効率化できない部分は、人間が作業しなければいけません。

例えば、
・100枚のシートにあるデータを1枚にまとめる
・売上データを取引先別に請求書へ転記する
・各シートにある毎月のデータを1枚のシートに集計する
などは、Excelだけでは限界があります。

そこで、マクロを使うのです。

 

 

データ数をカウントする

Excelではできずにマクロで簡単にできるものの1つに、データ数のカウントがあります。

例えば、1月のデータは、22行目までなので、22行目までを選択してコピーなどの処理をしますが、
スクリーンショット 2013 06 20 11 20 09

2月のデータは17行目まで、3月のデータは30行目まで・・・・・・ということがあります。
スクリーンショット 2013 06 20 11 21 03

人間が間違えずに選択すればいいのですが、めんどくさいですし、これらを12か月まとめてやる場合は、かなりの負担感です。

マクロだと、

Range(“a1048576”).End(xlUp).Row
と書けば、データ数をカウントしてくれます。

事例の場合は17です。

データがないところで、Ctrlキーと方向キーの↓を同時に押すと、Excelの一番下のセルを選択できます。
EXCEL2007、2010、2013だと、1,048,576行です。

スクリーンショット 2013 06 20 11 34 46

この位置で、Ctrlキーと方向キーの上を押すと、データがある行を選択できます。
事例だと17行目です。
スクリーンショット 2013 06 20 11 34 40

この考え方で、Excelに命令してやってもらうのがマクロです。
一瞬で「17」という数字を出してくれます。
毎月、自動的に数えてくれ、それに応じた処理をしてくれるのです。

ただし、Excel2003以前は、最大行が65,536です。
上記のマクロを

Range(“a65536”).End(xlUp).Row
と書かなければいけません。

 

Excelのバージョンに関係なくExcelの最大行すらもマクロに数えてもらうのなら、

 

Range(“a” & Rows.Count).End(xlUp).Row

 

と書きます。
Rows.Countという部分で、Excelの最大行も数えてもらいます。
これなら、将来、Excelの最大行が増えても対応できるのです。

※cells(Rows.count,1).End(xlUP).Rowとかくこともできます。

※実際の使用例は次のとおりとなります。

■Cmax(任意に決めることができます)という器に、データ数を入れる

Dim Cmax as long
Cmax=Range(“a” & Rows.Count).End(xlUp).Row


■そのCmaxを処理に使う(3行目から最大値17行目までをコピー)
Rows(“3:” & Cmax).Copy

 

 

データが増えても、仕事にかかる時間は変わらないようにする

同じような考え方で、
・売上データがいくら増えても、
・給与計算で社員がいくら増えても、
そして、データ数が減っても同じマクロで対応できます。

データが増えても、取引量が増えても、仕事にかかる時間は変わらないようにできるのがマクロの魅力といえます。
(データをインプットする時間は増えますが)

Excelと並行して学ぶと効果的です。→セミナーやります 6/29 Excelマクロ入門セミナー

 

 





【編集後記】
昨日は、毎月訪問させていただいているお客様の会社へ。
社長、社員の皆さんから、「日焼けしましたね〜」と(^_^;)
曇りだったレースで、日焼け止めを塗らず油断したのが一番の原因かと思います。
健康のためにもあまり焼かない方がいいと思うのですが、なかなか難しいです。

  • URLをコピーしました!