このマクロは、IMG タグを作成するマクロです。このマクロの実行には、SeraphyScriptTools をインストールする必要があります。
マクロを実行するとコモンダイアログが立ち上がり、選んだファイルへの相対パスを書き込みます。
また、つばめを使い、画像ファイルの高さと幅を取得し、これを書き出す機能も付いてます。つばめを使う方は、書式の最初に半角スペースを入れてください。
なお、XHTML で書いている方は、var linktag の最後に半角スペースとスラッシュを入れ、つばめの貼り付けの前の左に1つ移動を3つ移動にするといい感じだと思います。
一応きちんと動いてますが、文法的におかしい所などがありましたら、指摘していただけるとありがたいです。
// つばめを使うかどうか
// 使うなら1、使わないなら0
var swallow = 1;
//つばめのフルパス。¥を二重化して書く
var swallowpass = "D:\\app\\swallow\\swallow.exe";
//
// ==========設定おしまい===========
var Instance = new ActiveXObject( "SeraphyScriptTools.CommDialog");
CurrentPath = document.FullName;
function GetRelativePath(path1,path2){//path1に対するpath2の相対パスを求める
path1 = path1.split("\\");
path2 = path2.split("\\");
while ((1 < path1.length) && (1 < path2.length) && (path1[0]==path2[0])){
path1 = path1.slice(1,path1.length);
path2 = path2.slice(1,path2.length);
}
var pat = "";
for (var i=0;i==path1.length-1;i++) pat += "./";//同じ階層なら./を付ける
for (var i=0;i<path1.length-1;i++) pat += "../";//上の階層なら../を付ける
return(pat + path2.join("/"));
}
//コモンダイアログ
var path2 = Instance.OpenFileDialog (CurrentPath , "画像ファイル(*.jpg,*.png,*.gif)|*.jpg;*.png;*.gif|すべてのファイル|*.*");
if(path2 != null){//キャンセルした時用にifで。
WshShell = new ActiveXObject( "WScript.Shell" );
if (swallow ==1){
WshShell.Run( swallowpass + " " + path2 ,1 ,true );
}
var pathloot = document.Path;//開いてるファイルのディレクトリパス取得
var path1 = pathloot + "\\";//ケツに\を足す
var relpath = GetRelativePath(path1,path2);
var linktag = "<img src=\"" + relpath + "\">";
write(linktag);//imgタグ貼り付け
if (swallow == 1){
with (document){
selection.CharLeft(false,1);//左に1つ移動
selection.Paste(eeCopyUnicode);//つばめを貼り付け
selection.CharLeft(false,1);//左に1つ移動
}
}
}