プロが教えるわが家の防犯対策術!

一部の文字でファイルを開く方法を先日質問させていただきました。

今回質問したいのは、その一部の文字で抽出したファイルの更新日時を表示させたいのです。
一部の文字でヒットしたファイル名を更新日時を調べるVBAの式に割り当てたいのですが、どのように式を立てたら良いかわかりません。わかる方教えてください。

A 回答 (6件)

Sub openTargetFile()


  Const findPath As String = "C:\Users\英明\Desktop\陽平\"
  Const findName As String = "配置表(入力用)*11月*"

  Dim getName As String
  Dim objFso As Object
  Dim strLastTime As String
  Dim lngSave As Long
  Set objFso = CreateObject("Scripting.FileSystemObject")
  getName = Dir(findPath & findName)

  Do While getName <> ""
    strLastTime = objFso.GetFile(findPath & getName).DateLastModified
    lngSave = MsgBox(getName & " の更新時刻は " & strLastTime & " です。" _
      & vbNewLine & vbNewLine & getName & " を開きますか?", vbYesNo + vbInformation, "更新時刻")
    If lngSave = vbYes Then
      Workbooks.Open findPath & getName
    Else
      MsgBox "終了します。", vbExclamation, "更新時刻"
      Exit Sub
    End If
    getName = Dir()
  Loop
End Sub

こんな感じでどうでしょうか?
    • good
    • 0
この回答へのお礼

目からウロコです。解決に至り本当にありがとうございました。他力本願ながら、とても嬉しかったです。

お礼日時:2015/11/12 16:00

すみません....タイミング聞くのも変でしたね...


の様に書き換えてください。
Do While getName <> ""
  Workbooks.Open findPath & getName
  strLastTime = objFso.GetFile(findPath & getName).DateLastModified
  MsgBox getName & " の更新時刻は " & strLastTime & " です。", vbOKOnly + vbInformation, "更新時刻"
  getName = Dir()
Loop
    • good
    • 0
この回答へのお礼

何度も回答ありがとうございます。ちなみになんですが、出すタイミング、できたら教えていただきたいのですが、
ファイルがOPENする前にダイヤログで更新日時を表示し、そのダイヤログボックスでファイルをOPENするかEXITするかをかを選択させたいと思っています。それがやりたい最終形態なんですが、できたら、いえ是非教えてください。よろしくお願いします。


Sub openTargetFile()
Const findPath As String = "C:\Users\英明\Desktop\陽平\"
Const findName As String = "配置表(入力用)*11月*"

Dim getName As String
Dim objFso As Object
Dim strLastTime As String
Set objFso = CreateObject("Scripting.FileSystemObject")
getName = Dir(findPath & findName)

Do While getName <> ""
Workbooks.Open findPath & getName
strLastTime = objFso.GetFile(findPath & getName).DateLastModified
MsgBox getName & " の更新時刻は " & strLastTime & " です。", vbOKOnly + vbInformation, "更新時刻"
getName = Dir()
Loop

End Sub

お礼日時:2015/11/12 13:30

どのタイミングで表示したいですか?

    • good
    • 0

FileSystemObject を使用しない例です。



Sub openTargetFile()
  Const findPath As String = "C:\Users\英明\Desktop\陽平\"
  Const findName As String = "配置表(入力用)*年  11月*"
  Dim getName As String
  Dim LastTime As Date

  getName = Dir(findPath & findName)
  Do While getName <> ""
    LastTime = FileDateTime(findPath & getName)
    Debug.Print GetName & " : ";
    Debug.Print Format(LastTime, "yyyy/mm/dd hh:mm:ss")
    getName = Dir()
  Loop
End Sub
    • good
    • 0
この回答へのお礼

回答ありがとうございます。コードを入力してみましたが、エラーはでませんが、無反応でした。
何がいけないのか、解読できませんでした。m(__)m

お礼日時:2015/11/11 20:17

すみません。

記入ミスがありました....
strLastTime objFso.GetFile(findPath & getName).DateLastModified

strLastTime = objFso.GetFile(findPath & getName).DateLastModified
に書き換えて下さい。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。こちらのコードでファイルは起動するのですが、取得したい更新日時をどこで確認するのがわかりませんでした。不躾がましく申し訳ないのですが、どこかに表示できないでしょうか。できればダイヤログに表示できたらいいのですが、私のVBAレベルでは、理解不能な域なので教えていただきたいです。

Sub openTargetFile()
Const findPath As String = "C:\Users\英明\Desktop\陽平\"
Const findName As String = "配置表(入力用)*11月*"

Dim getName As String
Dim objFso As Object
Dim strLastTime As String
Set objFso = CreateObject("Scripting.FileSystemObject")
getName = Dir(findPath & findName)

Do While getName <> ""
Workbooks.Open findPath & getName
strLastTime = objFso.GetFile(findPath & getName).DateLastModified
getName = Dir()
Loop
End Sub

お礼日時:2015/11/11 18:48

Sub openTargetFile()


  Const findPath As String = "C:\Users\英明\Desktop\陽平\"
  Const findName As String = "配置表(入力用)*年  11月*"

  Dim getName As String
  Dim objFso As Object
  Dim strLastTime As String
  Set objFso = CreateObject("Scripting.FileSystemObject")
  getName = Dir(findPath & findName)

  Do While getName <> ""
    Workbooks.Open findPath & getName
    strLastTime objFso.GetFile(findPath & getName).DateLastModified
    getName = Dir()
  Loop
End Sub

前回の投稿されていたコードをお借りして変更しました。
こういう感じで大丈夫でしょうか?
    • good
    • 0

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