みなさんがマクロに求めるものって何ですか?おおむね、次の3項目が多いのでは。
今まで数え切れないほど相談された内容ですが、「1.エラーにならないマクロ」に関しては分かりやすいです。エラーになるか、ならないか。結果は明らかですね。さて問題は「2.動作が速いマクロ」と「3.コードが読みやすいマクロ」です。いわゆる、マクロの「高速化」と「可読性」なんですけど、よく考えてみると、これって明確な"正解"がありませんよね。何だか、VBAの技術論だけでは解決しないのではないか…、そんな感覚が30年前から漠然とありました。
「マクロが遅いんです、速くするには?」という質問や相談を数多く受けてきました。たいていの場合、逆に私からたずねます。「遅いって、具体的に何分かかるんですか?」と。すると答えは決まっています。「いや、測ってませんけど、でも遅いんです」って。プログラミングってコンピュータ上の話です。コンピュータは0と1で動いていますから、ある意味で数学みたく明確な解答があるはずです。マクロの速度に関してなら「このコードだと5分30秒かかるけど、こちらは4分10秒で終わる」みたいに。でも計測していないけど遅いって、それってあなたの体感ですよね。体感時間なんて、そのときの状況や気分で異なります。「辛い時間は遅く、楽しい時間は速い」ってのと同じです。それをVBAの技術で何とかするなんて、脳科学者もビックリです。
マクロには「開発→運用→保守→廃棄」というライフサイクルがあります。皆さんが気にしているのは、このうち運用フェーズの"実行時間"だけなのでは。じゃあ、そこを高速化したとしましょう。なんか意味は分からないけど、ネットに書いてあった配列を使うコードをコピペしたら、10分が1分になったと。9分の短縮です。確かに速くなりました。なんか意味は分からないけど。そして、しばらくして業務が変更になったと。マクロを直さなければなりません。保守フェーズです。でも、どこをどう直せばいいのか分かりません。そもそも、何をしているのか分かりません。ネットを検索しても答えは見つかりません。だいたい、そのコードをどこからコピーしたのかも覚えていません。当然、修正するのに長い時間を要します。仮に2時間かかったとしましょう。実行時間を9分短縮した代わりに保守時間が2時間かかりました。これ、高速化したと言えるのでしょうか。あなたは「マクロの実行速度選手権」に出場しているのではありません。マクロの実行時間も、そして保守に要する時間も、どちらも同じ"業務時間"です。画面を止めろ!配列を使え!で済むほど簡単な話ではありません。
"高速化"と同じくらい相談されるのが「分かりやすいマクロにするには、どうしたらいいですか」という、いわゆる"可読性"です。可読性を高める方法として、よく言われるのが次のような案です。
では逆に、可読性が悪かったら何が起きるのでしょう。
これらって、すべて"業務"に関する困りごとですよね。業務って人間が行う営みです。対して可読性の改善案は、すべてVBE内のコードに関する"技術"です。VBAの技術だけで業務の円滑化を図るって、ちょっと無理がありませんかね?もちろん、コメントは書いたほうがいいですし、インデントは適切にしなければなりません。でも、それだけで終わりですか?可読性が業務に対する施策なら、狭いVBE内だけで済む話ではありません。もし、そのマクロの仕様書や要件定義書があったら、改修や保守が楽になりませんか。操作マニュアルや使用している変数の一覧リストなどがあったら、後任者への引き継ぎもスムーズなのでは。そうした資料の整備も、立派な"可読性"です。
【内容】
2026年
08月23日(土) 13:00~17:00 東京・神谷町
開催会場にご注意ください。
申し込みのときは、必ず日付を明記してください
前日の0:00まで
東京・神谷町:東京都港区神谷町 日比谷線神谷町徒歩1分
大阪:大阪市中央区本町 大阪メトロ中央線、堺筋線「堺筋本町駅」徒歩5分
名古屋:愛知県名古屋市中村区 JR「名古屋駅」桜通口から徒歩5分
10名~15名程度(先着順)
\40,000(税込)
請求書をご希望の方は、こちらをご覧ください。
領収書をご希望の方は、こちらをご覧ください。
お支払いは銀行振込、またはクレジットカード払いよりお選びください。お申し込みの後に、銀行振り込みの場合は銀行口座を、クレジットカード払いの場合はお支払いの手順を記載した「確認メール」を差し上げます。「確認メール」を受信後、おおむね1週間以内に、お支払いください。
お振り込み日の希望などがありましたら、お気軽にお申し付けください。個別に対応いたします。
使いません。当日使用したパワーポイントのスライドとサンプルデータは差し上げます。