中級レベルの「Excel VBA開発者」になるために必要な考え方:脱初心者! 1歩先を行くExcel VBA開発者のススメ(1)(2/2 ページ)
Excel VBAを使って業務効率化を実現。しかし、自分で書いたコードをメンテナンスするとき、コードの解読に時間がかかってしまったり、エラーが解消できなかったりといった苦い経験はないだろうか。どうすれば将来も楽になるコーディングができるのだろうか。
■「楽をするスキル」とは何か
例えば、Sheet1のA1からA3セルを、Sheet2のA1からA3にコピー&ペーストをするコードを考えてみましょう。
マクロ記録を使うと、このようなコードが生成されますよね。このコードを見て、酷い!と思う人も多いでしょう。実行時に画面がいちいち切り替わり、実行速度も遅いです。
しかし、目的通り正確に動きます。だから、その観点では「正しい」のです。自分だけが使う、1回こっきりのマクロなら、全くこれで良いのです。
では、コピー&ペーストをする範囲を、A1からA10セルに拡張したいといった要望が出てきた場合はどうしますか?
・・・絶望的に面倒ですよね。
つまり、その場合は「正しくない」コードなのです。
その修正の可能性を想定して、このようなコードを作りました。
だいぶコードの行数も減りましたし、ざっと眺めれば、どういう処理なのかも予想できますね。さらに、Sheet1のデータの行数がいくら増えたとしても、そのままのコードで対応が可能です。
良さそうですよね。
ですが、経験のある人であれば、次のようなコードも思いつくかもしれません。
たったの1行で、前述の2つの例と全く同じ動きを実現できます。
あなた1人が1回だけ必要なのであれば、マクロ記録でできたコードCopyData1が、最も手っ取り早く作成でき目的を達成できるものでした。しかし、チームで使う、または長期で何度も利用するのであれば、ちょっと工夫してCopyData2やCopyData3のようなコードにしておいた方が、可読性、メンテナンス性、再利用性が高い、つまり結果として楽ができるのです。
つまり、誰が使うのか?どのように使うのか?将来何が起きそうか?などにより、最も楽ができる方法が変わります。
もう、お分かりですよね?
その「最も楽ができる」方法、それが「正しい」方法なのです。
VBAの初級レベルから脱するためには、長いコードを書く、複雑な処理をする、といったスキルよりもむしろ、パフォーマンスは落とさずに、コードは短く、構成はシンプルに、急がば回れ、転ばぬ先の杖・・・そういう考え方とアプローチ。それを知り、活用をすること、そんなスキルが必要だということです。
書籍紹介
ExcelVBAを実務で使い倒す技術
高橋宣成著
秀和システム 1,800円
苦労してExcelVBAの基礎を学んだのに、期待したほど仕事が楽にならない。実務で使っているうちに、気がついたらVBAが重荷になってきている。あなたは、そんな悩みをお持ちではないでしょうか。本書は、ExcelVBAを実務で使うことを前提に、現場で求められる知識と知恵を解説します。バグを素早く解決する、運用中のマクロを都度メンテナンスする、コードを継ぎ足して機能を足すテクニックなど、現場で必要なノウハウがわかります。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- さらば残業! 面倒くさいエクセル業務を楽にする「Excel VBA」とは
日頃発生する“面倒くさい業務”。簡単なプログラミングで効率化できる可能性がある。本稿では、業務で使うことが多い「Microsoft Excel」で使えるVBAを紹介する。※ショートカットキー、アクセスキーの解説あり - Excelデータの入力不備で計算エラーが発生して家に帰れない!――入力規則よりも簡単なチェックマクロとは
1つのExcelファイルを複数人で編集する場合、想定していたのとは違う形式でデータを入力されてしまい、不備が発生する可能性も少なくない。その問題をExcel VBAで解決するにはどうすればいいのだろうか。 - 一石二鳥で時間に余裕が!――面倒くさい見積書や請求書などの書類を自動作成するマクロとは
見積書や請求書、経費精算書などのさまざまな書類をExcelで作成している人は少なくありません。その書類を手で入力したりコピー&ペーストで作成したりしていては、人為的なミスが起こり、時間がかかってしまいます。今回はVBAで書類を作成する方法を紹介します。