![見出し画像](https://assets.st-note.com/production/uploads/images/34191103/rectangle_large_type_2_519ef451f1b44683d286f428c97d8de4.png?width=1200)
マクロルーティン#25(マクロの汎用性を高める!)
皆さんこんにちは。
今回はマクロの汎用性について一歩高めていきたいと思います。
データの行数はいつも同じとは限りません。ちょっと書き足すだけで変化に対応できるマクロを作れるのです。
前回の解答からです。
このように書けましたでしょうか?
前回の「美容」シートまとめのマクロから黄色い部分を変更しただけです。
今回は金額の列を確認しますので「C列」が「>=10000」という書き方になり貼り付け先のシート名も「一万以上」に書き換えました。
マクロの汎用性を一歩高める!
「マクロルーティン#21」「マクロルーティン#22」でご紹介している”最終行の取得”
これを組み込むことでデータ行の変化に対応できるマクロになります。
冒頭で紹介したマクロだと
「For i = 2 To 10」の部分で、最終行は10行目と固定されています。
ということは、
「記録」シートが100行あっても別シートにまとめる対象は10行目までということです。
最終行を取得するコード覚えていますか?
・
・
・
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」
↓
黄色の部分が変わった個所です。
これを入れるだけで汎用性が上がります!
最終行の取得の部分ではシート名から書くようにしましょう。
(別のシートから最終行を取得したらデータが正しくできません。)
実務にお役立ていただければ幸いです。
今回も最後までご覧いただきありがとうございました!
この記事が気に入ったらサポートをしてみませんか?