2017年11月
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30    
無料ブログはココログ

« コマンドラインから関連付けの動詞(Print/PrintTo)で印刷する。 | トップページ | Office FileSearchを代替する。(その2) »

2008年1月29日 (火)

Office FileSearchを代替する。

FileSearchは、Office 2007で使えませんが、その代替は、

ディレクトリ内のファイルの検索またはファイル一覧の取得を行う方法
http://support.microsoft.com/kb/185476/ja

に次の3案が示されています。

方法 1 : Windows API を使用する
方法 2 : 組み込みの Visual Basic 関数を使用する
方法 3 : Visual Basic で FileSystemObject を使用する

この中では、方法 1、方法 2 が「一応」お勧めです。お勧めでないのは、方法 3 です。

方法 3 は、検索で除外される大多数のエントリに対するオブジェクトの生成廃棄のコストが大きくて、とても遅くなります。
WMIのWQLを使った検索も、同じ理由で、お勧めしません。
WMI Tasks: Files and Folders
Windows Desktop Searchも、遅そう。
Seek and Ye Shall Find: Scripting Windows Desktop Search 3.0

方法 1 と方法 2 は「一応」性能的にコンパラブルなので、お好みで選択すればよいでしょう。

スクリプトの場合は、方法 1、方法 2が使えないので、代りに、DIRコマンドがよさそう。
例えば、
MsgBox CreateObject("WScript.Shell").Run("cmd /c for /f %r in ('dir /s /b c:\*.xls^|find /c /v """"') do exit %r", 1, True)

« コマンドラインから関連付けの動詞(Print/PrintTo)で印刷する。 | トップページ | Office FileSearchを代替する。(その2) »