2012年1月10日火曜日

VBAのApplication.FileSearchの高度なオプション

Excel 2003 VBAでApplication.filesearch使ってて、最終更新日が、ある日付以降のファイルだけ抽出したいな、と思ったので試行錯誤。とりあえず適当にググると以下のページ発見。

http://msdn.microsoft.com/en-us/library/aa191056(v=office.10).aspx

欲しかったのは、日付と日付に挟まれたのじゃなくて、ある日付から現在までのものだけど、これと大体おんなじようにやればいけるかな、と、目処がたったので、さらにググると以下発見。

http://msdn.microsoft.com/fr-fr/library/microsoft.office.core.filesearch.lastmodified(v=office.11).aspx
http://msdn.microsoft.com/ja-jp/library/microsoft.office.core.msocondition(v=Office.11).aspx

んで多分、↓みたいな感じでいけるかな、と思ったら、さっぱり動かない。
Call Application.FileSearch.PropertyTests.Add("Last Modified", msoConditionOnOrAfter, "4/1/09")

アレコレ試して、日本語環境だと以下が正解だとわかった。
Call Application.FileSearch.PropertyTests.Add("最終更新日", msoConditionOnOrAfter, "2009/4/1")

日本語環境ではプロパティの設定が変わるってのはありがちな話だけど、まさかメソッドに日本語いれなあかんとは盲点だったので、メモ。

ただ、そもそもExcel 2010だとこの方法使えないので、どーすっかなー。。。

0 件のコメント: