#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”

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