3日がかりのその仕事、3分で終わらせる方法教えます!
パソコンスキルの心技体

[質問] 同じ機能を実現するマクロの書き方が複数ある場合、どの書き方が良いか分からなくて迷います。

2014年4月9日
  • このエントリーをはてなブックマークに追加
  • follow us in feedly

エクセルVBA達人養成塾 小川です。

今日は、よく受ける質問と、その回答をシェアします。

[質問] 同じ機能を実現するマクロの書き方が複数ある場合、どの書き方が良いか分からなくて迷います。

[回答] 「どういう書き方が良いか」の答えは、「誰にとってか」によって変わります。

こういう質問は、基礎編を終えて、発展編1を受講されるくらいのレベルの方からよく受けるものです。
マクロを書けるようになっていろいろトライしていると、同じ機能を実現するのに、複数の方法があるな、と気づくことがあります。

あるいは、「どこまで懇切丁寧なプログラムにするべきなんだろう」と悩んだりすることもあります。
こういうフェーズにいる方向けに、これから、こういう疑問を持ったときの考え方のヒントを書きます。

「プログラムは手順書だ」という基本に立ち返ってください。
そうすると、ヒントが見つかります。

手順書には、いろいろな人が関わっています。

☆作成者 – そのプログラムをまさに今書いている人(現在進行形)
たぶんあなた。

☆編集者 – そのプログラムに今後手を入れる人(未来形)
あなたかもしれない。ほかの誰かかもしれない。

☆作業担当者 – その手順書に従って作業する人
「エクセルの中のこびとちゃん」

☆現場監督 – マクロの実行ボタンをポチっと押す人
あなたかもしれないし、ほかの誰かかもしれない。

☆評価者 – そのプログラムの品質を評価する人
あなたかもしれないし、上司かもしれない。目利きの同僚かもしれない。

☆管理者 – 品質管理もします
小さいプログラムならたぶんあなた。


そして、「どういう書き方が良いか」の答えは、「誰にとってか」によって変わります。
たとえばこんな感じです↓。

☆作成者 – そのプログラムをまさに今書いている人(現在進行形)とって:
○可読性とか効率性なんてどうでもいい。
○とにかく実装したい機能を早く書き上げられればよい。

☆編集者 – そのプログラムに今後手を入れる人(未来形)にとって:
○それがあなたであれば、あとで自分が見て分かる程度の可読性があればよい
○それがあなた以外のときは、その人が分かって編集できる程度であればよい
(編集する人のレベルによって程度は変わる)

☆作業担当者(エクセルの中のこびとちゃん)にとって:
○計算効率が高いプログラムのほうがよい。
○処理の負荷が少ないプログラムのほうがよい。

☆現場監督 – マクロの実行ボタンをポチっと押す人にとって:
○少ない操作で目的を達成できるほうがよい
○入力ミス等の思わぬハンドリングミスまでカバーできるほうがよい

☆評価者 – そのプログラムの品質を評価する人にとって:
ウソ。これは、評価者にとってではなく、「あなたにとって」です。
あなたの評価があがるようなプログラムとは?となると、こんな感じ↓。
○評価者の技術レベルが高ければ
・思い切り抽象度の高いプログラムやあらゆる異常系処理に耐えられるようなプログラムを見せて、あなたのレベル感を存分にアピールする
○評価者の技術レベルが低ければ
・思い切りレベルの高いプログラムをたたきつけて「オマエには分からんくらいオレはレベルが高いぞ」と見せつけるのもあり。
・ポイントポイントに丁寧にコメントを入れて親切設計をアピールするのもあり。

☆管理者 – 品質管理もします にとって:
○他のプログラムと同じスタイルで書かれているほうがよい
○モジュール化されていて他の道具と一緒に管理しやすいものがよい。
(リアルの仕事に例えれば、書類がみんなA4サイズだと、いろいろなサイズのものが混在しているより管理が簡単ですね。それと同じ感覚)

..ということです。

読んでいただけると分かると思いますが、上記のすべてのニーズを同時に満たすプログラムなんて、ないわけです。

つまり、「どういう書き方が良いか」の答えは、「誰にとってか」によって変わる、ということです。
手順書でもそうですよね。

いつも言っていますが、すべては共通しています。

「唯一の正解を見つけよう」という考えを捨てることです。
むしろ、いろいろな側面に対応できるよう、幅広いスキルを身につけることが大切です。

キーワード

コメント

2 thoughts on “[質問] 同じ機能を実現するマクロの書き方が複数ある場合、どの書き方が良いか分からなくて迷います。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

最新の記事

人気記事

最新記事

カテゴリ

最新コメント

タグクラウド