マクロの補足:「はじめてのサクラエディタ」


サポートページ目次へ
「清水美樹の本」トップページへ

このページは、工学社刊「はじめてのサクラエディタ」(ISBN978-4-7775-1746-6)の筆者 清水美樹 によるサポートページです。
このページの内容に関する御質問は、工学社ホームページの「お問い合わせ」フォームからお寄せください。

作成日と最終更新日をマクロで記述できるようにしてみよう

本書で例示した簡単なマクロをもっと実用的に

本書第4-7節で作成したマクロは非常に簡単なものでした。何も(日付の)書いていないHTMLファイルの最後(bodyの終了タグの直前)に「最終更新日:」という文字列と日付を挿入するというものです。
図1 「作成日」と「最終更新日」を併記するのがいいかも
せっかくですから、マクロを使って、「作成日を記入できる」「そのあと最終更新日を併記できる」「さらに更新をしたときには記述のし直しができる」ようにしてみましょう。

3つの作業のために3つのマクロをつくる

ただし、用いるのはサクラエディタのキーマクロのみにします。Windows Scripting Hostは使いません。
そして、サクラエディタのキーマクロは変数や条件分岐を使うものではありませんので、「作成日記入」「第一回目の更新日記入」「そのあと更新日の書き換え」という3つのマクロを作ることにします。

マクロの作成法、実行法は本書をどうぞ

マクロの作成や実行法は本書に説明してありますのでそちらをご覧ください。と言いましても、もともとはサクラエディタのヘルプに書いてあります。

「body終了タグ」の直前に作成日を記入する

本書のマクロと記入文字列が違うだけ

まず、何も日付の記入されていないHTMLファイルの「body終了タグ直前」に「作成日:2013年2月12日」のように記入するためのマクロです。
これは、本書で書いたマクロ「リスト4-1」の「最終更新日」という記述を「作成日」に変更しただけのものです。
リスト1 body終了タグの直前に作成日を記入する
S_GoFileTop();
S_SearchNext('</body>');
S_GoLineTop();
S_Char(13);
S_InsText('作成日:');
S_InsertDate();
S_Char(13);


マクロファイル名を「created_time.mac」とします。

作成日の次の行に最終更新日を記入する

「作成日:」と書いた行を見つけて、次の行に書く

作成後の最初の更新で更新日を記入するには、たとえば「作成日:」という語を検索して、そこの次の行に「最終更新日:2013年3月4日」のように入力します。

「次の行」とは、カーソルを行末まで持って行って改行

「次の行に入力」とは、たとえば検索で見つかった語の語末にいるカーソルを、行末まで持って行って改行を挿入します。
「カーソルを行末まで移動する」マクロ関数は「S_GoLineEnd」です。そこで、マクロはリスト2のようになります。
リスト2 「作成日:」と書いた次の行に「最終更新日:」と日付を記入する
S_GoFileTop();
S_SearchNext('作成日:');
S_GoLineEnd();
S_Char(13);
S_InsText('最終更新日:');
S_InsertDate();
S_Char(13);

マクロファイル名を「update_time.mac」とします。

最終更新日を書き換える

単純で力技な方法

最終更新日を「書き換える」のですから、置換などを用いるほうが華麗なのでしょうが、ここでは単純に「元の行を削除して最初から書き換える」ことにします。

検索で見つけた行を削除する

「元の行」は、「最終更新日:」という語を検索することで見つけます。
検索直後は、カーソルが検索語を含む行の上にありますので、そのままマクロ関数「S_SelectLine」を用いれば、見つけた行全体を削除できます。
マクロはリスト3のようになります。
リスト3 「最終更新日:」と日付が記入されている行をいったん削除して、新しく書き直す
S_GoFileTop();
S_SearchNext('最終更新日:');
S_SelectLine();
S_Delete();
S_InsText('最終更新日:');
S_InsertDate();

マクロファイル名を「update_more.mac」とします。

マクロを登録

「共通設定」で登録

マクロの登録の仕方は本書に解説してありますが、「共通設定」の「マクロ」画面で行います。
図2のように、マクロファイルやマクロ名を入力してから「設定」ボタンを押さないと、マクロ一覧に登録されませんので気をつけましょう。一覧に登録されたのを見て初めて「OK」でウィンドウを閉じます。
図2 「共通設定」でマクロを登録
なお、一覧のうちの青枠が、リスト1からリスト3のマクロです。図中の「全角スペースをタブに」は、本書第5-2節で作成したマクロです。

最初に作成日を入れるときは「Webページに作成日を登録」マクロを選びます。第一回目の更新時「Webページに最初の更新日を登録」、そのあとは「Webページに次からの更新日を登録」マクロを使っていくことになります。
図3 登録したマクロをメニューから選ぶ

マクロの修正を反映させたい場合

一度登録したマクロの修正を反映させるには、図2の画面で「マクロを実行するたびファイルを読み込みなおす」にチェックをつけます。マクロが完成したら、これをはずすと処理が簡単になります。
図4 マクロを実行するたびに読み直すことで、修正をすぐに反映できる
本当に修正が反映されているかどうかはっきりと確かめたいときは、メニューから「キーマクロの読み込み」「キーマクロの実行」を行うのが確実です。
図5 実際読み込んで実際実行する

キーマクロは単純な作業しか書けませんが、目的とする作業のためにどのようなマクロを作って組み合わせるかが工夫のしどころです。
サポートページ目次へ
「清水美樹の本」トップページへ