日経ソフトウエア2008年8月号にて掲載した「マクロで始める実用プログラミング」をお届けします。Partごとにアプリケーションを定め,プログラミング言語を用いて操作したり,機能を追加したりします。また,2009年4月号においても,Excel/VBAの徹底活用法を紹介しています。
※ 記事は執筆時の情報に基づいており,現在では異なる場合があります。

 コンピュータのアプリケーションを使って文書作成などの作業をしていると,同じような操作手順を繰り返していることがよくあります。操作が多くの段階から成り,オンライン・ヘルプなどを読みながら,複雑で長い一連の操作をやっとのことで終わらせることもあるでしょう。

 その作業が1度きりのものであればよいのですが,同じことをまた繰り返すことになるとうんざりします。手作業では,かなり長い時間がかかってしまうことだってあるかもしれません。長い時間をかけて作業をして,なんらかの問題でまた作業のやり直しになったらどうしますか? 嫌になってしまいますよね。

 このようなときに役に立つのが「アプリケーション・マクロ」です。アプリケーションが備えるプログラムの実行環境だと思ってください。操作手順をマクロ・プログラムとして記述すれば,面倒な作業をすぐに終わらせることができます。

 少し見方を変えると,「マクロ・プログラミングでアプリケーション・ソフトに機能を追加する」ということも可能です。自分に合った形に,アプリケーションを機能拡張できるのです。

準備は簡単,覚えることも少ない

 マクロの実用面でのメリットはここまで書いた通りです。そのメリットを得るのが,比較的簡単であるということも述べておきましょう。

 まず,プログラミングの準備が簡単です。例えば,Part1で取り上げるのは,マイクロソフトのスプレッドシート(表計算)アプリケーションである「Excel」です。Excelがインストールされていれば,実はもうそこに,「Visual Basic for Applications(VBA)」という言語を使ったマクロ・プログラミング機能が含まれているのです。

 Part2ではテキスト・エディタ「サクラエディタ」,Part3ではフォトレタッチ・ソフト「GIMP」,Part3ではJavaなどでプログラミングをする際に使う統合開発環境「Eclipse」のマクロ・プログラミングを取り上げます。これらは追加ソフトのインストールが必要な場合もありますが(それぞれ説明しているのでご心配なく!),本体も追加ソフトも無償利用できるので,経済的な負担はありません。

 覚えるべきことが少ないのもマクロ・プログラミングのメリットです。マクロの世界では,そのアプリケーションが持つ機能が,そのまま「関数」*1などの形で用意されています。それを呼び出すだけでよいのです。

 汎用的な開発ツールでも関数などを含むライブラリはありますが,その構造ははかなり複雑です。例えばマイクロソフトのVisual Studioでは.NET Frameworkのライブラリを,Javaでは「Java API(Application Programming Interface)」と呼ばれるライブラリを使うのが基本ですが,それらのライブラリに含まれる一つひとつの機能が小さくて,多くの機能を組み合わせて実際に役立つレベルまで持っていくのは大変です。マクロ・プログラミングの方が,より少ない知識で,より短いコードで,あなたの生活に役立つプログラムを書けるはずです。

Excelの操作を記録してそれがコードになった様子を見る

 Excelでマクロ・プログラミングをする様子を紹介しましょう。今回の記事では「Excel 2007」を使っていますが,このバージョンでは,インストールしただけの状態ではマクロ関連の機能が隠れてしまっています*2。隠れているマクロ機能を表示させるには,Excelの左上にある大きな丸いボタン「Officeボタン」をクリックし,「Excelのオプション」というボタンをクリックしてください。

 図1のように「Excelのオプション」ダイアログが現れます。ウィンドウ左側に並ぶ項目から「基本設定」を選び,「Excelに関する基本オプション」の「[開発]タブをリボンに表示する」というチェックボックスにチェックを入れて,右下の「OK」ボタンを押してください。これでExcelのウィンドウに戻ると,リボン*3の一番右に「開発」という項目が現れます。クリックすると,図2のようなリボンが現れ,マクロ・プログラミングを始めることができます。

図1●Excel 2007でマクロを作成,実行するには,「Excelのオプション」ダイアログで「基本設定」を選び,「[開発]タブをリボンに表示する」にチェックを入れる
図1●Excel 2007でマクロを作成,実行するには,「Excelのオプション」ダイアログで「基本設定」を選び,「[開発]タブをリボンに表示する」にチェックを入れる
[画像のクリックで拡大表示]
図2●東京都の郵便番号データを開いたところ。3ケタと7ケタの郵便番号があり,住所は漢字とふりがなが入っている。不要な列を削除しよう
図2●東京都の郵便番号データを開いたところ。3ケタと7ケタの郵便番号があり,住所は漢字とふりがなが入っている。不要な列を削除しよう
[画像のクリックで拡大表示]

 いきなりコードを書くのではなく,まずはExcelが備える「マクロの記録」機能を使ってみます。この機能は,ユーザーの操作をマクロのコードとして記録するものです。