|
テストしてみたらとりあえずうまく動くような気がしたんですが、マクロの中身を
見直して1つバグを見つけてしまいました。「表示」メニューの「文字カーソルの表
示」がONになってないとマクロがうまく動かないようになってしまってました。
今ちょっと直したので、以下のマクロで試してみて欲しいです。それでうまく動く
ようでしたら、ライブラリにアップロードしたマクロを差し替えたいと思います。
-----------------PlainToHtml.mac---------------------------------------
// PlainToHtml.mac
// Version 1.0
// 2016/03/29 by 斉藤秀夫
//
// 2018/11/27 Version 1.1
// 「文字カーソルの表示」がOFFだとうまく動かないバグ修正。
//
//
// このマクロは、現在選択してるメールをHTMLメールに変換します。
// 現在選択してるメールからHTML形式ファイルを生成して、X-Html:ヘッダを埋め込
んで、あたかもこの
// メールが最初からHTMLメールだったかのように変換します。
//
loaddll "tkinfo.dll";
if( dllfuncstr("CurrentHeader", "X-Html") != "" ) {
message "このメールは最初からHTMLメールです。";
endmacro;
}
if( dllfunc("GetMailFlag", "send") != 0 ) {
message "このマクロは送信系メールでは使えません。";
endmacro;
}
#originHandle = hidemaruhandle(0);
#browsemode = browsemode;
if( #browsemode ) {
browsemodeswitch;
}
gofiletop;
beginsel;
gofileend;
copy;
$htmlFolderBase = year + month + day + hour + minute + second;
$htmlFolderPath2 = "受信HTML\\" + $htmlFolderBase;
$htmlFolderPath = dllfuncstr("HomeDir") + dllfuncstr("CurrentAccount") +
"\\" + $htmlFolderPath2;
#n = dllfunc("Bypass_CreateDirectory", $htmlFolderPath);
if( #n == 0 ) {
message "フォルダ作成失敗 " + $htmlFolderPath;
endmacro;
}
#n = dllfunc("NewMail");
#n = dllfunc("SwitchHeaderView", 0);
gofiletop;
beginsel;
gofileend;
paste;
gofiletop;
replaceallfast "&", "\x1B", casesense;
replaceallfast "<", "<", casesense;
replaceallfast ">", ">", casesense;
replaceallfast " ", " ", casesense;
replaceallfast "\x1B", "&", casesense;
replaceallfast "\n", "<br>\n", regular, casesense;
saveas $htmlFolderPath + "\\index.htm";
if( result != yes ) {
message "saveas失敗、" + $htmlFolderPath + "\\index.htm";
endmacro;
}
$x_html = $htmlFolderPath2 + "\\index.htm";
#tempHandle = hidemaruhandle(0);
setactivehidemaru #originHandle;
closehidemaruforced #tempHandle;
if( dllfunc("IsHidemaruMailMain") ) {
#n = dllfunc("BeginEditMail");
#n = dllfunc("SetHeader", "X-Html", $x_html );
#n = dllfunc("SaveEditMail", 0, 0);
} else {
#n = dllfunc("EnableEdit");
#n = dllfunc("SetHeader", "X-Html", $x_html );
#n = dllfunc("AlterSave");
#n = dllfunc("Sync");
#n = dllfunc("BackSync");
}
if( #browsemode ) {
browsemodeswitch;
}
|
|