フォルダーのソートについてNo.37329
SnowMan さん 09/11/17 11:38
 
beckyやoe,Thunderbirdのようにフォルダーをソートする方法はないのでしょうか?
振り分けでたくさんのフォルダーができてしまい目的のフルだーを探すのに苦労して
います。教えてください。

[ ]
RE:37329 フォルダーのソートについてNo.37330
秀まるお2 さん 09/11/17 12:29
 
 フォルダはマウスのドラッグアンドドロップで好きな順に並べ替えることは出
来ます。

 ABC順でソートするという機能は無いですけども、秀丸メールのデータ用フォ
ルダ配下にある「subdir.bin」というファイルをテキストエディタで開いて中身
をソートするというやり方で、一応並び順変更は出来まして、その仕組みを使っ
てソートするマクロというのも、山紫水明さん作の物があります。

    http://hide.maruo.co.jp/lib/tkmacro/hmmsortfolder105.html


 山紫水明さん作のマクロだとすべてのアカウントのすべてのフォルダを対象と
する動作になってるようなので、なんでしたらもっと単純に「今現在選択してる
フォルダ配下をソート」みたいなマクロを作って差し上げることも可能かもしれ
ませんけど。

[ ]
RE:37329 フォルダーのソートについてNo.37331
秀まるお2 さん 09/11/17 12:32
 
 あと他の解決策も連絡させていただきますと…

 フォルダ毎の設定の中で、フォルダのアイコンを指定することが出来ます。特
に頻繁に使うフォルダはそれで色分けしておくと見やすくていいかもしれません。
あと、そうやって色分けしたフォルダは、フォルダ枠タイトルバーの右端にある
ボタンを押して出てくるメニューから簡単に移動することも出来ます。

 それと、そもそもフォルダは階層構造に出来るので、例えば滅多に使わないフ
ォルダは深い階層の所に移動して普段は折りたたんでおく、という使い方も便利
じゃないかと思います。

[ ]
RE:37330 フォルダーのソートについてNo.37332
秀まるお2 さん 09/11/17 15:29
 
> もっと単純に「今現在選択してる
> フォルダ配下をソート」みたいなマクロを作って差し上げることも可能かもしれ
> ませんけど。

 一応マクロとしては以下のような内容でうまくいくと思います。もしよかった
ら使ってみてください。マクロの作成方法/実行方法については、「ヘルプ・
秀丸メールマクロヘルプ」の「マクロの実行方法」を参照ください。

------------------------------------------------------------------
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");
}

[ ]
RE:37332 フォルダーのソートについてNo.37388
SnowMan さん 09/11/24 13:25
 
ありがとうございます。便利になりました。

[ ]