1 件の投稿を表示中 (合計 5 個)
  • 作成者
    投稿
  • #6914
    kshi
    参加者

    細々としたマクロを1つのファイルにまとめて、
    ショートカットキーで個別に実行する方法は
    あるでしょうか。

    最初にポップアップメニューを出して
    各機能へと分岐するようなコードを書けば
    よいのでしょうが、頻繁に使う機能はやはり
    最短のショートカットキーで実行したくなります。

    #6921
    Yutaka Emura
    キーマスター

    kshiさんは書きました:
    細々としたマクロを1つのファイルにまとめて、
    ショートカットキーで個別に実行する方法は
    あるでしょうか。

    最初にポップアップメニューを出して
    各機能へと分岐するようなコードを書けば
    よいのでしょうが、頻繁に使う機能はやはり
    最短のショートカットキーで実行したくなります。

    1つのファイルにまとめて複数のキーボード ショートカットで実行を分ける方法はありません。マイ マクロにある別々のマクロ ファイルであれば、キーボード ショートカットを割り当てることが可能です。

    #6922
    kshi
    参加者

    江村さん、ご回答ありがとうございます。
    他のテキストエディタでは、

    関数名@マクロファイル名

    で実行できる仕様のものもあるようです。
    機会があればご検討いただきたく思います。

    複数のマクロからサブルーチンを共用したくなって
    上記の質問をさせていただいた次第ですが、
    WEBで調べるうちにeval()を利用する裏技に行き当たりました。

    以下のmail.jseeとsub.jseeを同じフォルダに置いて、
    mainを実行すると擬似的な戻り値も利用できます。

    main.jsee

    s = eval_file(“sub.jsee”);
    alert(s); //ファイルの内容を表示
    eval(s); //実行
    alert(s); //擬似的な戻り値を表示

    // ファイルを読み込む
    function eval_file(filename){
    var fso = new ActiveXObject(‘Scripting.FileSystemObject’);
    var path = fso.GetParentFolderName(ScriptFullName) + ” + filename;
    var stream = fso.OpenTextFile(path);
    var strScript =stream.ReadAll();
    stream.Close();
    return strScript;
    }

    sub.jsee

    alert(“sub”);
    s=”擬似的な戻り値”;

    ファイルの内容を読むあたりがひと手間かかりますので、
    EmEditorに

    s=ReadFileAll(PATH);

    という具合に簡便に利用できるメソッドがあれば、
    いろいろと応用が利きそうです。

    #6923
    Yutaka Emura
    キーマスター

    kshiさんは書きました:
    江村さん、ご回答ありがとうございます。
    他のテキストエディタでは、

    関数名@マクロファイル名

    で実行できる仕様のものもあるようです。
    機会があればご検討いただきたく思います。

    複数のマクロからサブルーチンを共用したくなって
    上記の質問をさせていただいた次第ですが、
    WEBで調べるうちにeval()を利用する裏技に行き当たりました。

    以下のmail.jseeとsub.jseeを同じフォルダに置いて、
    mainを実行すると擬似的な戻り値も利用できます。

    main.jsee

    s = eval_file(“sub.jsee”);
    alert(s); //ファイルの内容を表示
    eval(s); //実行
    alert(s); //擬似的な戻り値を表示

    // ファイルを読み込む
    function eval_file(filename){
    var fso = new ActiveXObject(‘Scripting.FileSystemObject’);
    var path = fso.GetParentFolderName(ScriptFullName) + ” + filename;
    var stream = fso.OpenTextFile(path);
    var strScript =stream.ReadAll();
    stream.Close();
    return strScript;
    }

    sub.jsee

    alert(“sub”);
    s=”擬似的な戻り値”;

    ファイルの内容を読むあたりがひと手間かかりますので、
    EmEditorに

    s=ReadFileAll(PATH);

    という具合に簡便に利用できるメソッドがあれば、
    いろいろと応用が利きそうです。

    複数のマクロからサブルーチンを共用するのが目的でしたら、ファイルの最初に

    #include “sub.jsee”

    という行を追加するだけで可能です。

    #6930
    kshi
    参加者

    江村さん、ご回答ありがとうございます。

    簡単な方法があるのですね。(常識?)
    スッキリしました。

1 件の投稿を表示中 (合計 5 個)
  • このトピックに返信するにはログインしてください。