連載
» 2018年01月31日 05時00分 公開

脱初心者! 1歩先を行くExcel VBA開発者のススメ(1):中級レベルの「Excel VBA開発者」になるために必要な考え方 (2/2)

[高橋宣成,著]
前のページへ 1|2       

■「楽をするスキル」とは何か

 例えば、Sheet1のA1からA3セルを、Sheet2のA1からA3にコピー&ペーストをするコードを考えてみましょう。

マクロ記録をベースとしたコピー&ペースト

 マクロ記録を使うと、このようなコードが生成されますよね。このコードを見て、酷い!と思う人も多いでしょう。実行時に画面がいちいち切り替わり、実行速度も遅いです。

 しかし、目的通り正確に動きます。だから、その観点では「正しい」のです。自分だけが使う、1回こっきりのマクロなら、全くこれで良いのです。

 では、コピー&ペーストをする範囲を、A1からA10セルに拡張したいといった要望が出てきた場合はどうしますか?

 ・・・絶望的に面倒ですよね。

 つまり、その場合は「正しくない」コードなのです。

 その修正の可能性を想定して、このようなコードを作りました。

Do〜While文によるコピー&ペースト

 だいぶコードの行数も減りましたし、ざっと眺めれば、どういう処理なのかも予想できますね。さらに、Sheet1のデータの行数がいくら増えたとしても、そのままのコードで対応が可能です。

 良さそうですよね。

 ですが、経験のある人であれば、次のようなコードも思いつくかもしれません。

 たったの1行で、前述の2つの例と全く同じ動きを実現できます。

Copy メソッドによるコピー&ペースト

 あなた1人が1回だけ必要なのであれば、マクロ記録でできたコードCopyData1が、最も手っ取り早く作成でき目的を達成できるものでした。しかし、チームで使う、または長期で何度も利用するのであれば、ちょっと工夫してCopyData2やCopyData3のようなコードにしておいた方が、可読性、メンテナンス性、再利用性が高い、つまり結果として楽ができるのです。

 つまり、誰が使うのか?どのように使うのか?将来何が起きそうか?などにより、最も楽ができる方法が変わります。

 もう、お分かりですよね?

 その「最も楽ができる」方法、それが「正しい」方法なのです。

 VBAの初級レベルから脱するためには、長いコードを書く、複雑な処理をする、といったスキルよりもむしろ、パフォーマンスは落とさずに、コードは短く、構成はシンプルに、急がば回れ、転ばぬ先の杖・・・そういう考え方とアプローチ。それを知り、活用をすること、そんなスキルが必要だということです。

書籍紹介

ExcelVBAを実務で使い倒す技術

ExcelVBAを実務で使い倒す技術

高橋宣成著
秀和システム 1,800円

苦労してExcelVBAの基礎を学んだのに、期待したほど仕事が楽にならない。実務で使っているうちに、気がついたらVBAが重荷になってきている。あなたは、そんな悩みをお持ちではないでしょうか。本書は、ExcelVBAを実務で使うことを前提に、現場で求められる知識と知恵を解説します。バグを素早く解決する、運用中のマクロを都度メンテナンスする、コードを継ぎ足して機能を足すテクニックなど、現場で必要なノウハウがわかります。


注文ページへ


前のページへ 1|2       

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。