こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

Excelのマクロを教えてください!!

転記するマクロを探していた所、下記の質問を見つけました。
https://okwave.jp/qa/q9554919.html

また、watabe007さんの良い回答があった為、下記を参考にさせていただきました。
https://okwave.jp/qa/q9554919/a26683580.html

ただ、同じファイル名が複数存在した時に古いファイルのみ転記されるようでした。
(例えば1.csvが3個ある場合、更新日時の古いファイルが転記されてました。)

そこで質問ですが、同じファイル名が複数存在した時に1番新しいファイルのみ転記する事は可能でしょうか?

急な質問、大変申し訳ありませんがご教授お願いできないでしょうか?

投稿日時 - 2019-01-15 19:44:23

QNo.9578086

困ってます

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.3

sglkjakslgasさん、こんにちは
セルの位置、csvが置かれているパス、どのように処理したいのか等
詳しく、教えてもらえませんか。

投稿日時 - 2019-01-22 17:50:52

ANo.2

DateLastModified プロパティの使用例
マイドキュメント内での最も新しいファイル
Sub Test()
  Dim FSO As Object, f As Object
  Dim myPath As String
  Dim Latestdate As Date
  Dim Filename As String

  myPath = CreateObject("WScript.Shell").SpecialFolders("MyDocuments")
  Set FSO = CreateObject("Scripting.FileSystemObject")
  For Each f In FSO.GetFolder(myPath).Files
    If Latestdate < f.DateLastModified Then
      Latestdate = f.DateLastModified
      Filename = f.Name
    End If
  Next
  MsgBox "最新のファイルは" & vbCrLf & Filename & vbCrLf & Latestdate
End Sub
最も古いファイル
Sub Test2()
  Dim FSO As Object, f As Object
  Dim myPath As String
  Dim Latestdate As Date
  Dim Filename As String

  Latestdate = Now()
  myPath = CreateObject("WScript.Shell").SpecialFolders("MyDocuments")
  Set FSO = CreateObject("Scripting.FileSystemObject")
  For Each f In FSO.GetFolder(myPath).Files
    If Latestdate > f.DateLastModified Then
      Latestdate = f.DateLastModified
      Filename = f.Name
    End If
  Next
  MsgBox "最も古いファイルは" & vbCrLf & Filename & vbCrLf & Latestdate
End Sub

投稿日時 - 2019-01-17 08:27:46

ANo.1

DateLastModified プロパティでファイルの更新日時を取得できるので
比べて新しい更新日時のファイルパスを変数に残していけば良いでしょう

投稿日時 - 2019-01-15 23:57:59

補足

大変申し訳ないですが、まだVBA始めたばかりで初歩的な事を理解できていないです。ソースコードを記載して頂くことは可能ですか?本当にごめんなさい。。

投稿日時 - 2019-01-16 06:27:06

あなたにオススメの質問