VerticalEditorの使い方ヒント
マクロ
この部分は、VE掲示板の kan さんの書き込みから引用させていただきました。
地矢さんの help ができるまでの暫定版という条件で、kan さんのご了解をいただいて、このマニュアルに転載しています。
kan さんの、アドバイスを参考にして、自分の目的に合った
マクロを作ってみて下さい。自信作ができたら発表してください。
よく使うマクロは、ユーザー定義マクロの最初に登録して、
「アクションのカスタマイズ」で、アクション AcMacroExec を使うと、ショートカット・キーや、ツール・ボタンで、直接実行できるので、便利です。
マクロに関する質問や作成要望には、一切、お答えできません。マクロ専門の掲示板を探してください。
*************** 目次 **********************************
PPA.DLLのダウンロード
マクロの記述
実行方法
マクロの作成
事例
・
@【BookShelf 辞書引き】
・
A【DDwin 辞書串刺し検索】
・
B【EBWin 辞書串刺し検索】
・
C【自分で作った用語集から検索】
サクラエディタ用マクロの改変方法
参考:テキストファイルへの書き出しと読込
**************** 目次 ******************************
マクロ作成のアドバイス
記事No : 963 & 971 & 1007
投稿日 : 2005/11/13 & 2005/11/17 & 2005/12/30
投稿者 : kan
VE掲示板のスレッドにあった、
「任意の範囲指定部分の文字カウント機能」
を、PPA.HLP内の、基本マクロの例文、を元に改変するアドバイスです。
VEでは、選択部分の文字数は、ステータスライン(左下)に表示されますので、わざわざマクロを作らなくても、そちらを確認する方が、簡単で早いです。
ただ、マクロ作成の事例として、分かりやすいテーマなので、ここで取り上げます。
PPA.DLLのダウンロード
http://homepage1.nifty.com/ht_deko/junkbox.html#PPA
から、ppa_124.lzhをダウンロードして解凍、VEをインストールしたフォルダに、PPA.DLLをコピー、又は、移動してください。
(PPA.DLLがないと、制御構文や変数を利用したネット上で公開されるマクロは、動きません)
http://www.geocities.jp/maru3128/sakura.html
の、「おまけ」の「マクロリファレンス」に、CHM版のヘルプが掲示されています。
マクロの記述
以下の ---- 間は、ppa_124.lzhの、PPA.HLPの基本構文に、少し手を加えた事例です。
@「編集」→「操作」→「マクロの実行」で、「ユーザ定義マクロ」の画面を表示する。
A「追加(A)」ボタンを押して、「マクロ編集」画面を表示する。
B「マクロ名」の部分に、例えば、「選択部分の文字数カウント」として、「ソースコード」の部分に、下のサンプルコードを貼り付けます。
// 〜 end; までの部分をコピペするのです。
「ソースコード」の部分は、簡易HELPを完備した、マクロ専用のエディタなのです。
コマンドを入力する途中で、入力補完が、働きます。
Cコードを記述したら、下の「リストに登録」のボタンを押します。
すると、ユーザ定義マクロの「マクロリスト」に登録されます。
D「上書き保存」または「閉じる」ボタンを押して登録します。
(登録するとVEに記憶されますので、マクロを改変したい場合は、「マクロリスト」の右側の「ソースコードの内容」の画面で編集して、登録します。)
-----------------------------
// 選択部分の文字数カウント(未完成版)
var
Dmy: String;
Len: Integer;
begin
Dmy := seltext; //VEのMacroHlp.csv参照
Len := Length(Dmy);
MessageBox(IntToStr(Len div 2), ' 選択語数', 0); //除算は、整数と実数の相違に注意 PPA.HLP参照
end;
-----------------------------
var
↓
end; までが、マクロ本体です。
//以下をコメントと言い、改行まで、何を書いても無視されます。注釈等に利用されます。
それぞれの単語の意味は、PPA.HLPを参照してください。
実行方法(初歩的なことは省略します)
適当な文章で、文字をカウントしたい部分を選択して色を反転させておいてから、このマクロを実行してみましょう。
(文字数をカウントする選択範囲は、「全てを選択」としてもかまいません。)
マクロを実行は、以下のようにします。
編集(E)→操作(O)→マクロの実行(X) (この場合は、ショートカット CTRL+M(ユーザー定義マクロ)を推奨)
「マクロリスト」の画面が表示されるので、実行したいマクロを選択して、「マクロ実行」ボタンを押します。
ユーザー定義マクロにある最初のマクロは、
「アクションのカスタマイズ」で、アクション AcMacroExec を使うと、ショートカット・キーや、ツール・ボタンで、直接実行できます。
マクロの作成
前記の事例のままですと、
スペースも1文字、改行コードも1文字として計算します。
一つの方法として、
スペースの処理方法は、
http://www.netlaputa.ne.jp/~satoru/pg/ppa4sakra.html
の「英文の語数を集計する」を、改行コードは、同氏によるcalendar.ppaを参考にさせて頂くと良いと思います。
解決させれば、完成は間近です。(半角文字への考慮はありません)
応用すれば、特定文字列や記号の出現回数を調べたり、選択文字で日本語辞書を起動させる等も可能と思います。
マクロの書き方には個人差があり、正解は、あってないようなものでして、自分の考えたように動作すれば、全て、◎ということでしょう。
PPA.HLPなどを参考にして、研究してみて下さい。
例えば、「サクラエディタ用」として公開されているマクロの中に、選択部分の文字数カウント用マクロもアップされていますので、関連のHPでお調べください。
http://sakura.qp.land.to/?Macro%2F%A5%AB%A5%C6%A5%B4%A5%EA
(後述の、関数変更のみで動きます)
どなたかがお書きになったマクロを、自分の利用目的に合うように改変を加えていくことが上達への近道です。
関数名の相違で動作しないマクロは、VE用(正確にはPPA用、或いは、その逆)の関数に書き換えれば動作します。
他ソフト独自の関数の場合は、記述に相応の工夫をする必要があります。
VEのマクロには、ツリー関連の独自の関数が用意されていますので、かなり複雑な処理も可能と思います。
マクロの事例@【BookShelf 辞書引き】
VEで、調べたい文字にカーソルを置くか、または選択してから、マクロを実行すると、辞書引きします。
前もって、BookShelfを起動させ、最小化しておくと検索が早くできます。
BookShelf 辞書引き
-------------------------
// BookShelf Basic 1.0(マイクロソフト/小学館)用
// 選択した文字列を辞書引きします。
var
word,option:String; //変数
begin
word := SelText; //選択文字列
if word = '' then //選択文字列がなければキャレット(カーソル)位置の語句を選択
word := WordFromCaret; //キャレット(カーソル)位置の語句を選択
if word <> '' then //選択文字列がなければマクロ終了
begin
option := '/h /d'; //BookShelfの起動オプション
Shell('C:\Bookshelf\BS96JL.EXE',option + word); //(*1)
//Exec('C:\Bookshelf\BS96JL.EXE',option + word, 0 ); //(*2)
end;
end;
-------------------------
(*1)実行ファイルのパス、ファイル名、オプション等は、お使いのものと書き換えてください。
1.0 の場合('C:\Program Files\Microsoft Reference\BookShelf J Basic\BS96JL.EXE'〜 等)
(*2)Shellで動かなければ、Execを使ってください。
(ユーザー定義マクロを)マウスに割り付けるか、ツールバーに配置しておくと、幾分、使い易くなるでしょう。
BookShelfは、WordやMS-Officeに付属していますが、どこかで安売りされているものもあります。
このマクロは、私(渡辺)の環境で、Microsoft/Shogakukan Bookshelf Basic1997 (kan さんのものと同じ?)で動作確認済みですが、その他のバージョンでの動作の可否、オプション類は確認出来ません。
このマクロの記述方法は、
実行ファイル + 検索したい文字
実行ファイル + 起動オプション + 検索したい文字
の形式で起動可能なソフトであれば、利用可能と思います。
例えば、「かんざし」なら、
Shell('C:\Kanzasi\Kanzasi.EXE', word) 等で動作します。
マクロの事例A【DDwin 辞書串刺し検索】
DDwin は、複数の辞書を串刺し検索できて、便利です。
VE で検索したい単語の部分にカーソルを持っていくか、または、明示的に単語選択しておいて、下のマクロを実行すると、DDwin を起動させて、検索結果が表示されます。
-------------------------
// DDwin 用
// 選択した文字列を辞書引きします。
var
word,option:String; //変数
begin
word := SelText; //選択文字列
if word = '' then //選択文字列がなければキャレット(カーソル)位置の語句を選択
word := WordFromCaret; //キャレット(カーソル)位置の語句を選択
if word <> '' then //選択文字列がなければマクロ終了
begin
option := ',2,主辞書,G1,'; //起動時のパラメータ (*1)
//MessageBox(option,'',0); // for Debug
//MessageBox(word,'',0); // for Debug
Shell('C:\tool\DDwin\ddwin.exe',option + word); //(*2)
end;
end;
//(*1)オプションは、お使いの DDwin の設定に書き換えてください。
//DDwin起動時のパラメータの書式
// DDWIN.EXE 環境設定ファイル,二重起動の制限,グループ名,辞書番号,検索キーワード
// 二重起動の制限 2…二重起動しない
// グループ名 未指定なら前回使用したグループが開かれる。下の画面例では、グループ名は「主辞書」
// 辞書番号 単独の辞書またはサブグループを指定する。G1…一つ目のグループに対して串刺し検索。下の画面例は、番号は「G1」
//(*2)実行ファイルのパス、ファイル名は、お使いのものと書き換えてください。
-------------------------
マクロの事例B【EBWin 辞書串刺し検索】
EBWin も、複数の辞書を串刺し検索できて、便利です。
VE で、調べたい用語の部分にカーソルを持っていくか、または、単語選択しておいて、下のマクロを実行すると、EBWin を起動させて、用語検索できます。
-------------------------
// EBWin 用
// 選択した文字列を辞書引きします。
var
word,option:String; //変数
begin
word := SelText; //選択文字列
if word = '' then //選択文字列がなければキャレット(カーソル)位置の語句を選択
word := WordFromCaret; //キャレット(カーソル)位置の語句を選択
if word <> '' then //選択文字列がなければマクロ終了
begin
option := '/C=1 /S='; //起動時のパラメータ
Shell('C:\Program Files\EBWin\EBWin.exe',option + word); //(*1)
end;
end;
//(*1)実行ファイルのパス、ファイル名、オプション等は、お使いのものと書き換えてください。
//EBWin 引数 説明
// /G=グループ名 起動時に選択する辞書グループ名。指定しない場合は、最後に選択していたグループが使用される。
// /S=検索語 起動時に検索する検索語。ダブルクォートで囲むことができる。
// 前方一致や後方一致を明示的に指定したい場合は、ワイルドカード文字の*を使う。
// /#=辞書番号 グループ内の辞書番号。0から始まる。
// /C={0|1} 串刺し検索の指定。
// 0:串刺し検索 行わない
// 1:串刺し検索 行う
// /m ミニウインドーで起動。
// ※ / の代わりに - を使用することもできます。
-------------------------
マクロの事例C【自分で作った用語集から検索】
自分で、用語集を、テキスト・ファイルで作ったものから検索することもできます。
このマクロは、
サクラ・エディタを使って、「用語.txt」を GREP 検索します。
サクラ・エディタのパッケージ・ダウンロード:
http://sourceforge.net/projects/sakura-editor/
-------------------------
// Sakuraエディタでgrep
// 選択した文字列を、用語.txt で検索します。
// 用語.txt は、VerticalEditor と同じフォルダに登録します。
// 用語は、一行に、見出しと、内容を登録します。
var
word,strCmdLine:String; //変数
begin
word := SelText; //選択文字列
if word = '' then //選択文字列がなければキャレット(カーソル)位置の語句を選択
word := WordFromCaret; //キャレット(カーソル)位置の語句を選択
if word <> '' then //選択文字列がなければマクロ終了
begin
//strCmdLine := ' -GREPMODE -GOPT=P1 -GCODE=99 -GFOLDER="C:\Tool\VerticalEditor\" -GFILE="用語.txt" -GKEY="' ;//行内検索
strCmdLine := ' -GREPMODE -GOPT=RP1 -GCODE=99 -GFOLDER="C:\Tool\VerticalEditor\" -GFILE="用語.txt" -GKEY="^' ;//行頭のみ検索
word:=word + '"';
//MessageBox(strCmdLine + word,'確認',0);
//Shell('C:\Program Files\sakura\sakura.exe', strCmdLine + word ) ;
Exec('C:\Program Files\sakura\sakura.exe', strCmdLine + word , True) ;
end;
end;
-------------------------
サクラ・エディタのパスと、VerticaEditor のパスは、ご自分の環境に合せて、修正して下さい。
サクラエディタ用マクロの改変方法
(拡張子が PPAに限る。JS,VBSのマクロは、VEでは動きません)
サクラエディタ独自のエディタ関連の関数を使用していないマクロであれば、一部の変更のみで動作します。例えば、
サクラエディタの → S_GetSelectedString(0)「選択部分の文字列を取得」は、VEでは → SelText「選択文字列」に変え、
拡張子を、PPA から P2Sに変えます。(拡張子は変えなくても動きますが)
参考:テキストファイルへの書き出しと読込
マクロは、テキストファイルとして、保存したり、あるいは、テキストファイルからVEに登録したりできます。
マクロをテキストファイルで保存したい場合は、「マクロリスト」の画面で、テキストファイルに出力したいマクロを選択して、「編集」ボタンを押します。
「マクロ編集」画面に変わったら、右の「保存」ボタンを押して、適当なフォルダを指定して、ファイル名を付けて保存します。拡張子は P2S です。(例 Length.p2s)
テキストファイルからVEに読み込む場合は、
編集(E)→操作(O)→マクロの実行(X) (またはCTRL+M(ユーザー定義マクロ) )→ 追加 で「マクロ編集」画面を表示して、「読込」ボタンを押して、マクロファイルを指定します。(例 Length.p2s)
そして、「リストに登録」→「閉じる」です。
*************************************************
Copyright © 2005-2012 kan. All rights reserved.