|
> もっと単純に「今現在選択してる
> フォルダ配下をソート」みたいなマクロを作って差し上げることも可能かもしれ
> ませんけど。
一応マクロとしては以下のような内容でうまくいくと思います。もしよかった
ら使ってみてください。マクロの作成方法/実行方法については、「ヘルプ・
秀丸メールマクロヘルプ」の「マクロの実行方法」を参照ください。
------------------------------------------------------------------
loaddll "TKInfo.dll";
$account = dllfuncstr("CurrentAccount");
$folder = dllfuncstr("CurrentFolder");
$path = dllfuncstr("HomeDir") + $account + "\\" + $folder + "\\subdir.
bin";
if( ! existfile( $path ) ) {
message "配下にフォルダが複数ある状態でマクロ実行してください。";
endmacro;
}
#n = dllfunc("NewMail");
#n = dllfunc("SwitchHeaderView", 0);
gofiletop;
beginsel;
gofileend;
delete;
insertfile $path;
gofiletop;
beginsel;
gofileend;
config "w999";
#c = linecount2;
if( #c <= 1 ) {
message "複数行じゃない内部エラー";
endmacro;
}
#line1 = 0;
#updated = 0;
while( #line1 < #c - 2 ) {
$text1 = gettext( 0, #line1, 999, #line1 );
#line2 = #line1 + 1;
while( #line2 < #c - 1 ) {
$text2 = gettext( 0, #line2, 999, #line2 );
if( $text2 < $text1 ) {
moveto 0, #line1;
beginsel;
golineend2;
delete;
insert $text2;
moveto 0, #line2;
beginsel;
golineend2;
delete;
insert $text1;
$text1 = $text2;
#updated = 1;
}
#line2 = #line2 + 1;
}
#line1 = #line1 + 1;
}
if( #updated ) {
question "今表示しているような順序に並べ替えますか?";
if( result == yes ) {
saveas $path;
} else {
#updated = 0;
}
} else {
message "並べ替えは不要でした。";
}
#handle = hidemaruhandle(0);
#n = dllfunc("SetMainWndTop");
closehidemaruforced #handle;
if( #updated ) {
#n = dllfunc("RefreshFolder");
}
|
|