一覧の中の複数のメールの選択No.23079
Y.T. さん 05/06/04 20:06
 
メールのバックアップのマクロを作成しております.

先に,Userフォルダ以下にあるフォルダ名を取得する方法について
質問させていただき,アドバイスのおかげで解決いたしました.あ
りがとうございました.(To: 三月様,秀まるお2様)

次のステップとして,一覧の中のメールで特定の日時のメールだけ
を選択し,まとめてテキストに保存することを行いたいと考えてい
ます.現在までできていることとしまして,

1:保存対象フォルダのメールを送受信日時順で並べ替える.
2:メールの送受信日時を読み込んで保存すべきメールかどうかの判
 定を行う.
3:「MailIndex」関数により保存すべきメールの最初と最後の番号
 を得る.(最初:#n1, 最後:#n2)

です.

で,あとは #n1 と #n2 の番号の間のメールを選択して,テキスト
に保存する処理をすればよいと考えましたので,#n1 から #n2 の
メールを順番に「SetMailIndex」で選択していけば,この間のメー
ルが複数選択された状態になると思ったのですが,違いました.

そこでお尋ねしたいのですが,このような状況で特定の番号の間の
メールを複数選択した状態にするにはどのような処理をすれば良い
のでしょうか?

お知恵を拝借いただければ幸いです.宜しくお願い申し上げます.

[ ]
RE:23079 一覧の中の複数のメールの選択No.23080
Iranoan さん 05/06/04 23:17
 
 Y.T. さん今日は、Iranoan です。
> 次のステップとして,一覧の中のメールで特定の日時のメールだけ
> を選択し,まとめてテキストに保存することを行いたいと考えてい
> ます.現在までできていることとしまして,
 最終的に何をしたいのか不明なので、外しているかもしれませんが、
(1) 指定の日付のメールを検索
(2) メールをエクスポート
      ただし 2 通目からは追記
とすれば良いと思います。

[ ]
RE:23080 一覧の中の複数のメールの選択No.23081
Y.T. さん 05/06/05 00:36
 
Iranoan 様,コメントありがとうございます.

> 最終的に何をしたいのか不明なので、外しているかもしれませんが、

済みません.説明不足でした.

1ヵ月ごとにメールをバックアップ(テキスト出力)しています.
例えば,6月になったところで5月分のメールをバックアップして
「○○200505.txt」というような保存をし,鶴亀メールからは5月
分のメールを削除しています.(○○はフォルダ名です.)

実際には6月のメールが少し混ざっていますので,送受信が5月中
になされたメールだけを選択して,テキスト保存するようにしよう
と考えています.

>(1) 指定の日付のメールを検索
>(2) メールをエクスポート
>      ただし 2 通目からは追記
>とすれば良いと思います。

なるほど,まとめて選択して保存するのではなく,対象となるメー
ルを追記でファイルに出力していくという方法ですね.これでもう
まくいきそうですので,検討してみます.

ところで一覧画面で [Shift]+[↓] でメールが選択できますが,こ
のような選択状態をマクロで実行することは不可能なのでしょうか?

[ ]
RE:23081 一覧の中の複数のメールの選択No.23082
山紫水明 さん 05/06/05 09:37
 
 Y.T.さん,こんにちは。

>1ヵ月ごとにメールをバックアップ(テキスト出力)しています.
>例えば,6月になったところで5月分のメールをバックアップして
>「○○200505.txt」というような保存をし,鶴亀メールからは5月
>分のメールを削除しています.(○○はフォルダ名です.)

 マクロで1月分を選択してエクスポートする方法もあると思いますが,メール
用ファイルを月単位に分割して作成するように設定してあれば,これを直接コ
ピーしてバックアップファイルを作るという方法もあります。受信フォルダです
と「受信200505.txt」がホームディレクトリにあるのでこれをコピーすればよい
と思います。
 マクロでフォルダ名とファイル名を取得して,田楽DLLなどを使えばコピー
できますが,この方法では何か具合悪いことがありますか?

     では, (^^)/~
                                        山紫水明(ユーザー)
                                        SANSHISUIMEI

[ ]
RE:23081 一覧の中の複数のメールの選択No.23083
三月 さん 05/06/05 16:52
 
>1ヵ月ごとにメールをバックアップ(テキスト出力)しています.
>例えば,6月になったところで5月分のメールをバックアップして
>「○○200505.txt」というような保存をし,鶴亀メールからは5月
>分のメールを削除しています.(○○はフォルダ名です.)
>
いまさらながら、
「バックアップのお手伝い」機能では駄目なのでしょうか?
と思ってしまったのですが。

[ ]
RE:23081 一覧の中の複数のメールの選択No.23086
Iranoan さん 05/06/05 23:26
 
 秀まるおさん、Y.T. さん今日は、Iranoan です。
> ところで一覧画面で [Shift]+[↓] でメールが選択できますが,こ
> のような選択状態をマクロで実行することは不可能なのでしょうか?
 マクロ・ヘルプに記載がない (少なくともキーワードには登録されていない
ようです) かもしれませんが、SimulateKeyStroke 関数で出来ます。ご希望の
動作は、
#n = dllfunc("SimulateKeyStroke", 0x28, 1, 0);
です。
http://maruo.dyndns.org:81/hidesoft/hidesoft_8/x15318.html#15341
http://maruo.dyndns.org:81/turukame/turukame_2/x07394.html#7403
http://maruo.dyndns.org:81/hidesoft/hidesoft_8/x15318.html#15353
あたりを参考にして下さい。

[ ]
RE:23081 一覧の中の複数のメールの選択No.23091
秀まるお2 さん 05/06/06 11:14
 
> ところで一覧画面で [Shift]+[↓] でメールが選択できますが,こ
> のような選択状態をマクロで実行することは不可能なのでしょうか?

 不可能というか、少なくともtkinfo.dllにはそういうことをする関数は用意さ
れていません。

 しいて現状でそれに近いことをマクロでやるとしたら、まずは「全般的な設
定・メール一覧・表示範囲」にて目的の対象を限定する用の表示範囲を定義し、
マクロからはSetViewArea関数にてその表示範囲に切り替えるというのがいいん
じゃないかと思います。表示範囲を切り替えてから「すべて選択」をしてからコ
マンド実行するようにすれば目的が達成できると思います。

[ ]
RE:23081 一覧の中の複数のメールの選択No.23096
Y.T. さん 05/06/06 13:50
 
山紫水明様,三月様,Iranoan様,秀まるお2様

アドバイスおよびコメントをいただきありがとうございました.
月単位で保存するので,「メール用ファイルを月単位に分割して
作成」という方法は以前にも検討したのですが,そのときにはフ
ァイル内のメールの順番がいまいち良く分からなかったので,結
局は断念し,月が変わる度に手作業で対象ファイルをテキスト保
存していた記憶があります.今回ご指摘をいただいて改めてメー
ルのファイル内での順番を見てみたところ,どうも送受信の日付
順には並んでいないところがあるようで,これはそのフォルダに
ファイルが移動されてきた順番になっているんでしょうか? 後
日に以前のメールの内容を調べたいときに,秀丸で開いて検索機
能で日付順に話の流れを追うことが多いので,できれば送受信の
日付順に並んでいてくれると有り難いなぁと思った次第です.た
だ,そういうことを行う頻度を考えると,余計なマクロを作らな
くて済むことを考えれば,月単位で保存したファイルをバックア
ップするのが確かに早いかと….検討してみます.

「SimulateKeyStroke」については初めて知りました.他にも応
用できそうなので,少し詳しく勉強してみます.

「SetViewArea関数」を使うやり方もなるほどと思いました.バ
ックアップ対象となるものだけを表示して「すべて選択」で保存
するという方法ですね.このやり方はスマートかも.

「バックアップのお手伝い」については,今までちゃんと勉強し
たことがなくて現時点では判断できません.少し勉強してみます.


色々とアドバイスをいただきまして,だいぶん目処が立ちました.
どのやり方が適切かは色々と試してみないと分かりませんが,少
なくとも目的の動作はできそうです.ありがとうございました.
また,結果が出ましたら報告させていただきます.

[ ]
RE:23096 一覧の中の複数のメールの選択No.23098
アルビレオ さん 05/06/06 15:33
 
アルビレオです。

>今回ご指摘をいただいて改めてメー
>ルのファイル内での順番を見てみたところ,どうも送受信の日付
>順には並んでいないところがあるようで,これはそのフォルダに
>ファイルが移動されてきた順番になっているんでしょうか? 後
>日に以前のメールの内容を調べたいときに,秀丸で開いて検索機
>能で日付順に話の流れを追うことが多いので,できれば送受信の
>日付順に並んでいてくれると有り難いなぁと思った次第です.

ファイルの内容を並べ替えるというのは表示の順番を並べ替えるのと比べると
桁違いに時間がかかります。
「年単位に分割」なんて設定で1ファイルに千通以上のメールをソートすること
になったら…とか考えると「秀丸で直接開く」といった特殊な使い方のためにし
ては払う代償が大きすぎると思います。
他のメールソフトでも送受信のたびに内部データを並べ替えるなんてことをして
るのは、まず存在しないでしょう。
それくらい「遅くて使い物にならない」可能性が高いんですよ。

って、本筋に関係ない話ですみません。

[ ]
RE:23096 一覧の中の複数のメールの選択No.23104
ベネトナーシュ さん 05/06/07 07:34
 
私もマクロと関係ない話で申し訳ありませんが、

>後
>日に以前のメールの内容を調べたいときに,秀丸で開いて検索機
>能で日付順に話の流れを追うことが多いので,
こういうことをする者として一言…(ニフティの生ログを大量に保存しているもので
(^^;))。

ファイル自体はむしろ日単位に分割して、それを月単位や年単位のフォルダにバック
アップし、検索はgrepでフォルダを指定する、という方法もあると思います。
こうすれば、テキストエディタで見ても時系列に沿ったやりとりが一目瞭然です。

[ ]
RE:23096 一覧の中の複数のメールの選択No.23108
Y.T. さん 05/06/07 10:28
 
アルビレオ様,ベネトナーシュ様

コメント・アドバイスありがとうございます.1つのファイル内
の複数のメールを並べ替えるのは時間がかかる処理だということ
は確かにその通りですね.鶴亀メールでもそうしていないのは処
理のスムーズさを考えれば合点がいきます.まぁ,そちらをどう
にかして欲しいという要望は当然考えておりませんで,マクロで
対応しようと考えたのですが,日にちごとにファイルを作成する
という案は気がつきませんでした.確かに,それなら少なくとも
日付の順番は揃いますね.また,振り分け処理を行う状況などを
考えても,同じ日のメールであればだいたい時間順に並ぶのでは
ないかと思われます.

いやはや色々とアイディアをいただいて大変参考になります.引
き続き検討しながらマクロも作ってみます.
ありがとうございました.

[ ]
RE:23079 マクロ完成しましたNo.23371
Y.T. さん 05/06/24 15:07
 
本件につきまして,皆さまの色々なコメントをいただき,無事に
思い通りのマクロを完成することができました.コメント,アド
バイスを頂いた皆さまにこの場を借りてお礼申し上げます.
ありがとうございました.

[ ]