マクロのすすめ | 悪態のプログラマ

悪態のプログラマ

とある職業プログラマの悪態を綴る。
入門書が書かないプログラミングのための知識、会社の研修が教えないシステム開発業界の裏話は、新人プログラマや、これからプログラマを目指す人たちへのメッセージでもある。

一般的なアプリケーションの機能として、いわゆる「マクロの記録」というものがある。Microsoft Office(Word や Excel)にも付いているので、ご存知の方も多いだろう。商用アプリだけでなく、フリーソフト(テキストエディタなど)でも、同等の機能が付いていることがある。これは、アプリケーションに対する一連の操作を「記録」し、後で同じ操作をしたい場合に「再生」するというものだ。一連の操作を何度も繰り返し行いたいときには便利な機能である。


ここで、「マクロの記録」機能で記録された一連の処理は、どのような形で「記録」されているのだろうか? 記録したマクロを編集機能(あるいはテキストエディタ等)で開いてみると、プログラムのソースコードが書いてあるはずだ。つまり、ユーザーの操作が、そのままソースコードとして「記録」されているのである。一般に、マクロとは、そのアプリケーションを操作するためのライブラリが付属したプログラミング言語である。例えば、Microsoft Office のマクロは、VBA(Visual Basic for Applications)という言語に、Word や Excel を操作するためのオブジェクト等が組み込まれたものである。


つまり、「マクロの記録」という機能とは、非常に簡単なプログラミング手段なのである。こうして記録されたマクロを更に自分で編集すれば、「一連の操作の繰り返し」以上の複雑な処理をさせることができる(もちろん、それなりの勉強は必要だが)。



マクロは、その性質上、アプリケーションによって書き方が違う。例えば、Excel マクロの知識だけでは Word のマクロは書けない。同じ VBA でも、アプリケーションを操作する機能の書き方(ライブラリの使い方)が全く違うからだ。プログラミング経験者でも、全く初めてのアプリケーションのマクロを書く場合には、そういった書き方を調べるのは面倒なものである。


そんな時にも、マクロの記録機能が役に立つ。書き方を知りたい機能を手動で操作すれば、自動的にマクロのコードが保存されるので、それを参考にすればよい。もちろん、自動で生成されたコードは理想的な書き方になっていないことも多いが、手直しするのはそれほど難しいことではないだろう。



プログラミングの入門に適した言語は何か、という質問を時々受けることがあるが、アプリケーションのマクロは、その選択肢のひとつだと思う。マクロの記録機能で作られたコードを参考にできるため、プログラミング初心者でも、アプリケーションがどう動くのか、ということをイメージがしやすいからだ。また、記録したマクロを編集して汎用性を高めていくという過程からは、学ぶべきことは多いだろう。


このブログでも何度か書いていることだが、プログラミングを学ぶには、とりあえず「自分にとって役に立つプログラム」を作ってみるのがよい。マクロを作るということは、いつも自分が利用しているアプリケーションを自動化するということであるから、実用的な題材を設定しやすいというメリットもある。


プログラミングを始めるにあたり、「つぶしのきく」言語を学ぼうとする人も多い。マクロなんて覚えても、大した仕事はできないと思うかもしれない。しかし、初めてプログラミングを学ぶ際に重要なのは、言語(文法やライブラリの使い方)を覚えることよりも、普遍的な知識(プログラミングのセンス)を身に付けることである。その第一歩として、身近なアプリケーションのマクロを選ぶというのも、そう悪くはないと思うのである。







■関連記事
面白いプログラムを作ろう
プログラミングを始めようとして何度も挫折した人へ
プログラミングの入門書は何が良いか?
コマンドラインのすすめ




VBA の絵本
VBA の絵本
posted with amazlet on 07.10.13
株式会社アンク
翔泳社 (2005/10/21)
売り上げランキング: 16468


すっきりわかった! エクセルVBA マクロ作成のツボ (ASCII dot PC BOOKS)
アスキー・ドットPC編集部
アスキー (2007/09/28)
売り上げランキング: 136526