(プチ改善)EXCELマクロ開発は、EXCEL関数処理を併用して楽をしよう

EXCELで自動化のマクロを作成する場合、EXCELに「処理用」のシートを作成し、EXCEL関数で集計した結果をマクロ側で利用して開発したりします。どういうこと?と思われる方もおられると思います。

たとえば、
”結果”シートのA列の最終行の次の行にデータを保存する様なケース
”処理用”シートのとあるセル(文字が入っている行に1を加える数式)に、
 =MAX(if(A:A<>””,row(A:A)))+1
 と設定します。
 そうすることで、最終行の次の行を得ることができますので、その値を利用して結果の書き込みを行います。

 マクロ内でも全然できると思われるかと思います。その通り、マクロでも実現する事はできます。しかし、処理用シートから得られる情報に従って、マクロ側の処理をすることには色々なメリットがあります。
①動作確認が行いやすい
 マクロで実現した場合、上記の値は実行しないと結果がわかりません。
 関数で実現した場合は、目に見えています。マクロの動作は必要ありません
②セルでの数式処理は速い
 通常のセルで実行している数式処理は速いです。
 マクロで数式実行すると遅いです
③デバッグが行いやすい(①のおかげで・・)
 数式の値に従ってマクロを実行させますので、マクロは数式の値に従って正しく動作することを確認するだけで良くなります。
 EXCELシート上で直ぐに見ることができますので、動作確認(期待通りの数値確認)は簡単になります。

 マクロ内だけでの実行にこだわらず、数式の良いところ・マクロの良いところをうまく利用して、素早い改善マクロの開発をしてはいかがでしょうか?

本記事にたいする質問やお問合せ・IT改善のご相談はこちら