《連載第2弾 少しだけ、マクロを"カジって"みよう》
For…Nextループで、一気に書き替える(2)
さて、いよいよこのシリーズも最終回になりました。
前回のお約束通り、最後に「いかにもEXCEL的にマクロを・・・」をやってみたいと思います。
前回Find関数を使い、いかにもプログラムっぽく書いたマクロを、いかにもEXCEL的に書くと【図1】のようになります。

もうほとんど説明は不要かと思いますが、(1)の書式だけ説明します。
Range・・・Selectで、始めのセルは固定だけれど、終端が変化するような場合、このように書くことができます。
また、Range(Cells(4,"C"),Cells(r,"C")).Select という書式でもOKです。
12回に渡って進めてまいりましたEXCELマクロの講座でしたが、少しマクロ(プログラム)に対する抵抗は、ぬぐえましたでしょうか?
最後に、少しだけ補足をします。
1.マクロから別のマクロを実行する。
マクロから、マクロを呼び出す、左のような書き方が可能です。
Macro1がメインのプロシジャですが、その中で別のプロシジャ名を書くと、Macro2やMacro3を実行して終わったら戻ってきて処理を続けさせることができます。
マクロがたくさんたまってくるのが楽しみになります。それだけ、早くプログラムを完成させることができるのでは。

2.マクロ記録で、小さなプロシジャをたくさん貯めよう
上のようなプロシジャがかけますから、ひとつのプロシジャですべて完結させようと思わずに、 小さなプロシジャをたくさん作ったほうが有効な場合が多いのではと思います。
この方法を取ると、「この処理は、どう書けばよかったろう・・・」というようなときに、マクロ記録が生きてきます。
また、EXCEL VBAのマクロの優れたところはワークシート上で行える、ほとんどのことがマクロ記録が可能ということではないでしょうか。
このシリーズで取り上げた、
- セルの取りまわし(セルの値をとってきたり、セルに書き込んだり、コピーしたり・・・)ということ
- If・・・Then・・・Elseによる条件分岐( 「Select Case」は、次のステップで十分)
- For・・・Nextループによる処理の繰り返し(「Do While ・・・ Loop」は、次のステップで十分)
これさえわかればほとんどのマクロは、完成できるのでは・・・と思います。
後は、実際にBookを開いたり閉じたり、保存したりとか、シートを印刷するとか。 これらには、短くマクロ記録をしてみるとほとんどが理解可能なVBAプログラムとなって返ってくると思います。 (EXCEL固有の定数やパラメーターは、最初の内は、読み飛ばしておいても何とかなります) たいがいのプロシジャは、それら記録されたマクロの組み合わせで完成できるでしょう。
何はともあれ、連載は今回で一旦終了します。長い間お付き合いをいただき本当にありがとうございました。 読者の皆様が「足を一歩踏み出せた」と感じていただければ、これに勝る喜びはありません。
ぜひ引き続き挑戦をしてみてください。「仕事を知っている」「EXCELの表計算はだいたいわかっている」という方々であれば、必ず便利に使いこなすことができることと思います。
経営コンサルタント 谷田貝 敏紀
[2003年12月2日 掲載]
ジャーナル最新のテーマ
お客様の声をお聞かせください

富士通ジャーナルに掲載している記事やコンテンツについてのご意見・ご感想を、ぜひお寄せください。
お寄せいただいたご意見・ご感想については、富士通からの回答をお約束するものではありません。ご了承ください。
なお、富士通からのご回答を必要とするお問い合わせについては、
富士通ジャーナルに関するお問い合わせをご利用ください。





