プログラミングに興味があるという新入社員の皆さんに,私なりの“はじめの一歩”を紹介しましょう。と言っても「CやRubyでHello Worldを作る」といったものではありません。どうせやるなら,仕事に役立つことをしましょう。

 私が,プログラマ以外の方で,プログラミングをやってみたいという人にオススメするのは,アプリケーション・マクロです。一番手早く,ローコストで,プログラミング気分を味わえるうえに,自分の(プログラミング以外の)仕事にすぐに役立てることができます。

 アプリケーション・マクロで,現在最もポピュラーなのは,Microsoft Officeなどに搭載されているVBA(Visual Basic for Applications)でしょう。特に,表計算ソフトExcelとVBAの組み合わせは抜群に有用です。Excelのほとんどの操作をVBAで自動化できます。

 プログラミングに無関係な職場でも,Excelを使う機会は少なくないでしょう。VBAは,知っておいて損はない言語だと言えます。VBAについては,Webで検索すれば,個人サイトから商用サイトまで,非常にたくさんの情報がヒットします。ネットの情報とExcelさえあれば,独力でいつでも気軽にはじめられます。

 「Excelはワークシート関数の使い方を覚えていれば十分。VBAまでは必要ない」と言う方もいるかもしれません。でも“Excelの通常の操作では面倒”という場合もあります。例えば“作成した表のケイ線の色を変更したい”というケースでは,どうすればいいかご存じですか。

 表を選択して[セルの書式設定]-[罫線]で色を指定すればよい──確かに,その通りです。しかし,実際にやってみるとわかりますが,これは色を指定した罫線を引き直す作業になります。既存の罫線(特に罫線の引き方が単純ではない表)を一発でうまく色変更するという操作は見あたりません。

 表が一つだけなら,書式設定でちまちま行うのでも構わないのですが,表がいくつもある場合はとても面倒です。そんなときはVBAが役立ちます(具体的な説明は,関連記事「Excel/VBAクリニック(14)」を読んでください)。

 Excelで,同じ様な操作の繰り返しといった面倒な仕事があるとき,VBAを覚える良い機会になります。たいていネットに情報があるので,それを参考に自分でマクロを書いてみると“プログラミングのいろは”が理解できるようになります。

 もう一つ,アプリケーション・マクロでオススメなのは,秀丸エディタのマクロです。仕事や趣味でプログラミングをする人なら,テキスト・エディタの便利さについて語るのは釈迦に説法でしょう。秀丸エディタに限らず,お気に入りのエディタを持っているはずです。たいてい,ショートカットキーの割り当て機能やマクロを使って,自分なりにカスタマイズして使っているものです。それが自由にできるのが,テキスト・エディタの特徴だと言えます。

 ここでは秀丸エディタのマクロについて簡単に紹介します。例えば,HTML文章の一部にリンク(URL)を埋めるという仕事があった場合,

if (selecting == 0) {
  message "範囲を選択してください。";
  endmacro;
}

$url = input("リンク先を入力してください。", "http://");
if ($url == "")
  endmacro;

cut;
insert "<a href=\"" + $url + "\">";
poppaste;
insert "</a>";

といったマクロを作っておくと便利です。コードの説明は省略しますが,意味はなんとなくわかると思います。秀丸エディタのマクロについても,ネットにたくさんの情報があるので,そちらを参照してください。

 「この程度なら,フリーのHTMLエディタを使う方がいい」と思うかもしれません。ただ,テキスト・エディタは汎用なので,上のマクロを少し修正すれば,様々な用途に使えます。

 また,正規表現を少し覚えるとさらに便利になります。例えば

##小見出し
マクロのススメ
##

という書式が何カ所もあって,それを

<h4 class="midashi_line">マクロのススメ</h4>

というHTMLに変換したい場合は

replaceall "##小見出し\\f\n\\f.*\\f\n\\f##", "<h4 class=\"midashi_line\">\\2</h4>\n",regular, inselect;

といったマクロを用意すれば,一発で変換できます。タグ付き正規表現や,マクロ内のエスケープ文字(\)を使っているので,やや複雑に見えますが,中身はとても単純な文字列置換です。実際,この程度の文字列置換は,マクロでなくても置換ダイアログで可能です。ただ,こうした作業が頻繁にあるようなら,マクロを作っておくほうが便利です。

 大事なのは,こういうマクロを実際に自分で書いてみることです。アプリケーション・マクロは実行が簡単なので,何度もトライ&エラーを繰り返せばよいのです。すると,だんだんコツがつかめるようになります。

 ところで,問題もあります。マクロを作成している時間を業務と認めてもらえるかどうかです。マクロを作っている時間があったら,コピー&ペーストを繰り返してやってしまうほうが早い場合も多いでしょう。上司に「これは業務改善の一環なのだ!」と主張するには,地道に実績(マクロでいかに効率化できるかを実際に示す)をあげていくしかありません。それまでは,プライベートな時間内でやるしかないでしょう。

 私も,実際の仕事より,マクロを作っている時間のほうが長いときがあります。そうなると,業務改善や効率化というより「現実逃避!」と周囲から言われるので,注意しましょう。