見出し画像

マクロルーティン#25(マクロの汎用性を高める!)

皆さんこんにちは。
今回はマクロの汎用性について一歩高めていきたいと思います。
データの行数はいつも同じとは限りません。ちょっと書き足すだけで変化に対応できるマクロを作れるのです。

前回の解答からです。

画像1

このように書けましたでしょうか?
前回の「美容」シートまとめのマクロから黄色い部分を変更しただけです。
今回は金額の列を確認しますので「C列」が「>=10000」という書き方になり貼り付け先のシート名も「一万以上」に書き換えました。

マクロの汎用性を一歩高める!

マクロルーティン#21」「マクロルーティン#22」でご紹介している”最終行の取得”
これを組み込むことでデータ行の変化に対応できるマクロになります。
冒頭で紹介したマクロだと
For i = 2 To 10」の部分で、最終行は10行目と固定されています。
ということは、
「記録」シートが100行あっても別シートにまとめる対象は10行目までということです。
最終行を取得するコード覚えていますか?



画像2

Range("A" & Rows.Count).End(xlUp).Row
これをこのまま使えばいいんですよ。

◆使い方
①このコードで得られる値を適当な変数(gyo)にいれる。
gyo = Range("A" & Rows.Count).End(xlUp).Row

②最終行を変数(gyo)にする
「For i = 2 To 10」➡「For i = 2 To gyo

画像3

黄色の部分が変わった個所です。
これを入れるだけで汎用性が上がります!

画像4

最終行の取得の部分ではシート名から書くようにしましょう。
(別のシートから最終行を取得したらデータが正しくできません。)

実務にお役立ていただければ幸いです。
今回も最後までご覧いただきありがとうございました!


この記事が気に入ったらサポートをしてみませんか?