読者です 読者をやめる 読者になる 読者になる
スポンサーリンク

サクラエディタでのマクロ作成方法  (WSH版)

WSH/JScript tool


サクラエディタのマクロはJScriptでコーディングできる。
そのためJavaScriptのノウハウを生かせる。


これに対し秀丸のマクロは「C言語に似た文法を持つマクロ言語」とされ,入門が少し難しい。
エディタのカスタマイズを始めるなら,サクラから取り組んでみるのはどうだろうか。


以下はマクロの登録方法+作り方。

既存マクロの登録方法

ここでは「計算マクロ」を使ってみる。

エディタに書かれている数式文字列を評価し,計算結果を現在のカーソル位置に出力するというもの。

計算マクロ for サクラエディタ
http://www.vector.co.jp/soft/win95/writing/se350146.html


sakura editorのフォルダにmacro\のフォルダを作り,ダウンロードしたjsファイルを設置する。

エディタ上から,共通設定>マクロ でフォルダとjsを設定し,設定ボタン押下で決定される。

マクロ登録方法
http://muumoo.jp/news/2008/02/10/0sakuramacro.html

試しに,エディタ上で「1+1=」と入力して,そこでマクロを呼び出してみる。

 ツール>登録済みマクロ

で,先ほど登録したマクロ番号を選択。「2」という文字が = のあとに現れる。


マクロを自作

上記で述べたようなjsファイルを自作し,登録すればよい。


通常のJScriptプログラミングと異なる点は,エディタの状態をつかさどるEditorオブジェクトが存在すること。

このオブジェクトを通して,カーソルや選択文字列などエディタ上の情報を取得・操作する。


例えば,「Hello,World!」という文字列を現在のカーソル位置に挿入するようなマクロは

Editor.InsText("Hello,World!");

となる。


Editorオブジェクトの全メソッドは下記サイトで参照できる。
http://www.geocities.jp/maru3128/SakuraMacro/

VBScriptで記述することもできる。
http://members.at.infoseek.co.jp/sakura_editor/moca/new_help.html#HLP_MAC_WSH



試しに,URLをマウスで選択している場合,HTMLアンカーに置き換えるようなマクロを作成してみよう。

http://blog.asial.co.jp/284 に,「選択文字列をコメントアウトする」マクロの例が記載されている。

   5. function html_comment(){
   6.   var str = Editor.GetSelectedString(0);
   7.   str = "<!-- " + str + " -->";
   8.   Editor.InsText( str );
   9. }
  10. html_comment();

これを少しいじれば,アンカータグに置換するコードは

var str = Editor.GetSelectedString(0);
str = "<a href='"
	+ str 
	+ "'>" 
	+ str
	+ "</a>"
	;
Editor.InsText( str );

のようになる。



前記事で触れたように,文字列のスタイルプロパティを操作するようなメソッドが追加されると,個人的に嬉しいのだけども…。


関連する記事:

サクラエディタのマクロで,CSSを自動整形しよう - 主に言語とシステム開発に関して
http://d.hatena.ne.jp/language_and_engineering/20100206/p1


「スタートアップ」に,仕事をさせよう (朝,出社するだけで仕事が進む仕組み作り) - 主に言語とシステム開発に関して
http://d.hatena.ne.jp/language_and_engineering/20100929/p1


vmrun.exeで,仮想マシンの操作をバッチから自動化しよう (VMWare Server 2で,WindowsからLinuxをOSごと自動操作) - 主に言語とシステム開発に関して
http://d.hatena.ne.jp/language_and_engineering/20100514/p1