|
でるもんた・いいじまです。
> 翻訳作業中にマクロを使っているのですが、マウス右ボタン、ショートカット
> キー等と、めまぐるしく呼び出しています。
>
> マクロからマクロを呼び出す方法は、すでに行っているのですが、
> 呼び出すワンステップが遅くなるので、できるだけ一度に表示できないかと思っ
> ています。
方法はいくつかあります。
☆ ☆ ☆
一つは既におっしゃっている「マクロからマクロを呼び出す」です。キーボードでの
操作が前提になりますが、これを使うと、メニューバーの項目を Ctrl+E V A という
キー操作で辿っていくのと全く同じ要領で項目を増やすことができます。
これは私の実例をそのままご紹介します。
まず、下記の main.mac を Ctrl+O に割り当てています。
// main.mac
main:
menu "&A Delmonta's Macroについて",
"──",
"&! コマンドプロンプトの起動",
"&? 秀丸のヘルプサイトを開く",
"&F ファイル操作いろいろ",
"──",
"&C 文字データの処理",
"&H HTML 補助モード",
"&S データのシェイプアップ",
"──",
"&J 引用つきペースト",
"&K 罫線素引きマクロ",
"&L 線引きマクロ",
"──";
#r = result;
//以下略
ここでは &A のような「'&'+1文字」がキーポイントです。このメニューが出ている
状態でA、F、Cといったキーを押すと、すぐにその項目を選択できます。たとえばCを
押すとresultに7が返りますから、それを見て { execmacro "char.mac"; endmacro;
} とするような処理を組み込みます。
// char.mac
main:
menu
"&A ASCII文字を半角化(+個別例外)",
"&G カラケー日記用に半角化",
"&K ひらがなのみをカタカナに",
"──",
"&T Twitterでの文字数を調べる",
"&8 UTF-8でのバイト数を調べる",
"──",
"&U Unicode(非CP932)文字をハイライト",
"&N Unicode(非CP932)文字をCP932化";
#r = result;
//以下略
このメニューでKを押すとresultに3が返りますから、そこでやっと
to_Katakana:
setcompatiblemode 0x20000;
if (!selecting ) selectall;
disabledraw; begingroupundo;
replaceallfast "[ぁ-ん]+", "\\(0,ToZenkakuKata)", regular, inselect;
escapeinselect;
endgroupundo; enabledraw;
return;
という処理本体に辿りつきます。画面を見ずに Ctrl+O C K と連打するだけでこのマ
クロを呼び出せます。
☆ ☆ ☆
もうひとつの方法としては、複数のキーに同じマクロを割り当てます。
呼び出されたマクロのほうでは、「今どのキーが押されているのか」を判別して、そ
のキーごとに別々の処理をすればOKのはずです。
たとえば、Ctrl+Q、Ctrl+W、Ctrl+E、Ctrl+R、Ctrl+T、Ctrl+Yにすべて同じマクロ
(ファイル名は例えばCtrl_Any.mac)を割り当てたとして、そのマクロでは次のよう
にします。
//Ctrl_Any.mac
main:
if (iskeydown('Q')) goto Ctrl_Q;
if (iskeydown('W')) goto Ctrl_W;
if (iskeydown('E')) goto Ctrl_E;
if (iskeydown('R')) goto Ctrl_R;
if (iskeydown('T')) goto Ctrl_T;
if (iskeydown('Y')) goto Ctrl_Y;
beep; endmacro;
Ctrl_Q:
// Ctrl+Qに対応する処理
//以下略
実際には「Ctrl+なんとか」「Alt+なんとか」のように制御キー単位でファイルを分
ける必要はなくて、処理のカテゴリーごとにマクロを分けることも可能です。
たとえば上記のマクロをAlt+Wで呼び出しても goto Ctrl_W; が実行されますから、
秀丸側ではAlt+Wをこのマクロを、Ctrl+W は別のコマンドかマクロに割り当てておい
て、ラベルの名前もAlt_W にしてしまう、ということもできます。
☆ ☆ ☆
とりあえず、この2つで何とかならないでしょうか。
|
|