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

 「サクラエディタ」はオープンソースで開発されている,国産のテキスト・エディタです。もちろん無料で使えます。ソースコード中のキーワードの色分け表示,必要なところでのインデント,Visual Studioのようなコード入力支援機能(図1)など,多彩な機能を備えており,プログラマの間で人気が高まっています。

 サクラエディタが備える多彩な機能の一つとしてマクロが挙げられます。この記事では,サクラエディタをより便利にする,マクロ機能について解説します。

 まずはサクラエディタをインストールしましょう。サクラエディタのWebサイトからインストーラをダウンロードできます。本稿では2008年6月中旬時点での最新版であるバージョン1.6.2.0,ファイル名「sinst1-6-2-0.exe」を使用します。インストールに,特に難しいところはありません。

マクロ機能は3種類ある

 サクラエディタは,3種類のそれぞれ性格が異なるマクロ機能を利用できます。一つ目は「キーマクロ」です。「キーボード・マクロ」とも呼ばれます。ユーザーのキーボード操作を記録して,それを再生する機能です。Microsoft Officeも同様の機能を備えています。経験のある方もいるでしょう。

 二つ目は「PPAマクロ」です*1。PPAはPoor-Pascal for Applicationの略で,Pascalをベースにした独自文法を備えるインタプリタです。サクラエディタにこのインタプリタを組み合わせることで,サクラエディタが備える機能や関数を利用したマクロ・プログラムを作成できます。

 最後が「WSHマクロ」です*2。WSHはWindows Scripting Hostの略で,Windows 98以降が標準で備える,スクリプト実行環境です。WSHのプログラミング言語は二つあります。Visual Basicによく似た「VBScript」と,JavaScriptによく似た「JScript」です。サクラエディタのWSHマクロを利用すると,Windowsが標準で備えるインタプリタとオブジェクトを活用したマクロを作成できます。サクラエディタの関数に加えて,Windowsが提供するオブジェクトを利用できるので応用範囲が広くなります。追加プログラムのインストールが不要なので,気軽に試せて配布も容易です。今回はWSHマクロを利用したプログラミングを解説します。

HTMLファイル中の特殊文字をWebブラウザでも表示させる

図2●リスト1をWebブラウザで表示して,ボタンをクリックしたところ
図2●リスト1をWebブラウザで表示して,ボタンをクリックしたところ

 では,マクロを作ってみましょう。最初のサンプルは,HTML(HyperText Markup Language)において特別な意味を持つ記号をエスケープさせるプログラムです。エスケープとは,普通は特別な意味を持っていて,表示には現れない記号を,他のものに置き換えて表示させる処理です。

 例えば,リスト1のような簡単なHTMLファイルがあるとします。これをWebブラウザで普通に表示させると図2のようになります。「日経ソフトウエアは」というボタンを押すと「毎月24日発売です。」と表示します。では,リスト1をあなたのWebサイトに置いて,コードとして読んでもらうようにするにはどうすればよいでしょうか。そのまま置いたのでは,図2のようになってしまいます。HTMLにおける意味のある記号をエスケープしなければなりません。

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
  <head>
    <title>発売日</title>
  </head>
  <body>
    <script language="JavaScript">
      <!--
        function answer(){
          alert("毎月24日発売です。");
        }
      //-->
    </script>
  <form>
    <input type="button" value= "日経ソフトウエアは"
onClick="answer()"> </form> </body> </html>
リスト1●HTMLドキュメントの例。JavaScriptのコードを含むので,これもプログラムの一種と言える

 リスト1のHTMLファイルをサクラエディタで開いてすべてを選択した状態にし,これから紹介するマクロを実行して保存すると,「<」「>」で囲んだタグなどを含む,すべてのHTMLのソースを表示するHTMLファイルができます。