2011年12月1日木曜日

step5 メール受信時間から日付情報のみを取り出す

「Outlook VBAでさくさく効率化」で取り上げたかった重要なポイントも大分カバーできました。
今回は、以前に紹介したメールの受信時間を調べる方法の応用です。
今回のエントリーでは、日付情報のみを取得します。

これができるようになれば、日付ごとに添付ファイルを整理することが可能になります。

NTTフレッツ光

ReceivedTimeは秒単位で受信時間を管理している

ReceivedTimeを使って受信時間を調べると、左の画像のようにやたらと細かい単位で習得できることがわかります。

これはこれでいいんですが、大抵の場合日付以下の部分は不要な情報です。

ここから日付情報だけ抜きだしてやりましょう。


*"受信時間:"は自分で明記しているので、
Debug.print XXX.ReceivedTime
としている場合は、もちろん受信時間:は表示されません。

データ型を調べてみる
step3.5で文字列操作について紹介しました。(→復習しますか?
left, right, mid関数を駆使することで、今回の目標ももちろん達成可能です。
でも、勉強がてら、もう少しいじってみましょう。

そこで、このReceiveTimeで返ってくるデータ型を調べます。
こういうときに便利なのが、TypeName関数です。ヘルプで見てみると、

構文
TypeName(varname)
引数 varname は必ず指定します。引数 varname には、ユーザー定義型の変数を除く、任意のバリアント型 (Variant) の変数を指定します。

ということで、早速調べてみましょう。次のコードを書いてみて下さい。
Debug.Print TypeName(myfolder.Items(i).ReceivedTime) 
イミディエイト・ウィンドウにはどう表示されるでしょうか?
Dateと返ってくるはずです。
ということで、ReceiveTimeで返ってくるデータは文字列ではなく、日付型のデータということが分かりました。

日付型データのいろいろ

日付データの加工というのは、地味な作業ですが思いのほか色々な場面で使用します。
代表的な例だけいくつか取り上げてみましょう。

1.年、月、日のデータだけを取り出す。

・Year(varname) → 年 yyyy
・Month(varname)→ 月 m
・Day(varname)→ 日 d

という感じです。

ですので、スマートではありませんが、
でスラッシュぬきで、yyyymd形式のデータが取れます。

2.Format関数を使う
最強なのがFormat関数です。
構文
Format(日付データ, 表示形式)
yymmdd形式が欲しければ、
Format(日付データ, "yymmdd")
と指定してあげます。
もちろん年データはいらないという場合であれば
Format(日付データ, "mmdd")とすればいけます。

これで、ReceivedTimeはかなりしゃぶりつくしたことになります!!



<関連エントリー>
step3.5 これだけは押さえておきたい文字列操作の3パターン
step3 Outlook アドレス、件名、受信時間を調べる

<参考サイト>
Tatsuya's Home Page










PVランキング 人気ブログランキングへ

0 件のコメント:

コメントを投稿