プロが教える店舗&オフィスのセキュリティ対策術

よろしくおねがいします。

あるフォルダ(固定)の中にある、.hogeというファイルのうち、最新のファイルを既定のプログラムで開きたいと考えています。

このフォルダには、.hoge 以外のファイルも混在しています。
既定のプログラムで開くには、

Dim WSH As Object
Set WSH = CreateObject("WScript.Shell")
WSH.Run """C:\開きたいフォルダ\最新のファイル.hoge"""

このように書くことで動作確認できました。

1) フォルダ内で .hoge を列挙して
2) その中で一番更新日時が新しいファイルの名前を取得

この2点ができれば完成なのですが、どうすればよいかわかりません。
具体的な書き方を教えていただけますでしょうか。

A 回答 (1件)

http://msdn.microsoft.com/ja-jp/library/cc427964 …
あたりを参考にしてください。

・フォルダーの全ファイルを列挙
 ・ファイル名が特定のパターンか?
  ・ファイルの更新日を取得

この回答への補足

f1.typeで条件判定してみたらうまくいきました!
アドバイスありがとうございます!

補足日時:2013/05/03 23:51
    • good
    • 1
この回答へのお礼

ありがとうございますっ!!!

> ・ファイル名が特定のパターンか?
これだけまだできていませんが、とりあえず形になりました。

Sub Main
Dim WSH As Object
Dim fso, d, f, f1, n, p, fc, s, o
Set fso = CreateObject("Scripting.FileSystemObject")
Set f1 = CreateObject("Scripting.FileSystemObject")
Set f = fso.GetFolder("C:作業フォルダ")
Set fc = f.FIles

For Each f1 In fc
n = f1.DateLastModified
If p < n Then
s = f1.name
p = f1.DateLastModified
End If

Next
Set WSH = CreateObject("WScript.Shell")
WSH.Run """C:作業フォルダ\" + s + """ 3
Set WSH = Nothing
End Sub

作業フォルダのパスまわりでやたらとエラーがでて、この形にしたらおさまりました。
おそらくパスに空白があるので """ としなければならないのですが、""" 事前に変数に格納して使おうとするとエラーになっていたような感じでした。

できればここに拡張子チェックもいれてみたいと思います。

お礼日時:2013/05/03 23:45

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています