2017-05-25 5 views
0

私は現在、ユーザが予め定義されたディレクトリから所望のファイルを選択するためのファイルダイアログを提供している。期待どおりに動作します。私はちょうどステップ/相互作用を減らすために探しています。VBA - ファイルダイアログとディレクトリ内の最新のファイルを取得?

ファイルは単純なタイムスタンプ付きのログファイルであり、多くはディレクトリにあります。実際のファイル名はわかりませんが、希望のファイルが常にそのディレクトリの最新のファイルになることはわかります。

既知のディレクトリから最新の日付/時刻のファイルのファイル名を選択する方法はありますか?

  • ありがとうございます!
+0

意志がある場合、方法があります。ファイルの作成日を取得してフォルダを反復し、最新のファイル*を見つけて確認してもらう方法を調べる* - この方法では、ユーザーはファイル自体を見つけることができます。もし*; *)*あなたが "常に*そのディレクトリ内の最新のファイルになる"という前提が崩れていれば、何も書き換える必要はありません。 –

+0

あなたの質問に答えると、額面で答えた場合、はい/いいえの回答があります。これはかなり退屈なQ/A(FWIWは答えが「はい」です)です。 「特定のディレクトリで最新のファイルを取得する方法」を尋ねる場合は、[この質問](https://stackoverflow.com/q/6656023/1188513)の複製、または単に*あなたが問題を解決しようとしているのではなく、その試みがどういうわけではないのかを記述していないからです。 –

+0

@Mat、はい私はその仕事を行うために "どのように"尋ねていたはずです。あなたが提供したリンクを見てください。 –

答えて

0

私はここで良い方法を見つけました:

finding latest file in a folder and opening it (vba access)

Function NewestFile() 

Dim FileName As String 
Dim MostRecentFile As String 
Dim MostRecentDate As Date 
Dim FileSpec As String 

'Specify the file type, if any 
FileSpec = "*.*" 
'specify the directory 
Directory = "C:" 
FileName = Dir(Directory & FileSpec) 
If FileName <> "" Then 
    MostRecentFile = FileName 
    MostRecentDate = FileDateTime(Directory & FileName) 
    Do While FileName <> "" 
     If FileDateTime(Directory & FileName) > MostRecentDate Then 
      MostRecentFile = FileName 
      MostRecentDate = FileDateTime(Directory & FileName) 
     End If 
     FileName = Dir 
    Loop 
End If 

NewestFile = MostRecentFile 

End Function 

` を自分のニーズに合わせて、いくつかのマイナーな調整。必要に応じて動作します。