フォルダ内にある最後のファイル名を取得し、その一部をワークシートの名前にするため以下のコードをどこからかコピペして加工して使ってます。
フォルダ内のファイル名にせよ、最終更新日時にせよ、フォルダ内の一番最後に表記されてあるファイルを取得するつもりなのですが、失敗したり成功したりとよくメカニズムがわかっていません。
下記コードでは何が問題なのでしょうか。
また、①ファイル名の昇順降順、②最新更新日順
で一番最後のファイル名を取得したい場合どのようなコードになるでしょうか。
独学でVBAを学んでいますが、早くも行き詰ってます。
Sub フォルダ内にある最後のファイル名を取得()
Dim objFile As Object, strFolder As String, strFilePath As String, Spybook As String
'// FSOオブジェクト生成 Set objFile = CreateObject("Scripting.FileSystemObject") '// 対象ブック格納ディレクトリ設定 strFolder = "" '// 対象フォルダ上のファイルを1つずつ取り出す For Each objFile In objFile.GetFolder(strFolder).Files With objFile '// ファイル名「~.xls」の場合、変数にパスを格納 '// 尚、日付で特定する場合、本If文に条件を追加してけば良い If .Name Like "*.xlsx" Then strFilePath = objFile.Path End With Next '// 変数にパスが格納されていれば、ブックを開く '// このとき、変数の値は最後に取得したファイルパス If strFilePath <> "" Then Workbooks.Open Filename:=strFilePath End If Range(Cells(1, 1), Cells(Rows.Count, 2).End(xlUp)).Copy Workbooks("").Activate Worksheets(8).Cells(1, 1).PasteSpecial Paste:=xlPasteValues Worksheets(8).Name = Mid(strFilePath, InStr(strFilePath, "") + , ) & "" Cells(1, 2).Value = ActiveSheet.Name Application.CutCopyMode = False
End Sub

バッドをするには、ログインかつ
こちらの条件を満たす必要があります。