|
▼ハチさん、neptuneさん
お返事ありがとうございます。
どうやら、ファイルを閉じている状態で
FileName="O:\temp\計画書保存\AB\07AA001.xls"
Set FSO = CreateObject("Scripting.FileSystemObject")
LastUpdateDate = FSO.GetFile(FileName).DateLastModified
↑
これだとちゃんと更新日時をとってきます。
いろいろ試したソースです。
'案1(APIを使う)
' Dim Makedate As Date, AccessDate As Date, LastDate As Date
' Call LsGetFileTime(FileName, Makedate, AccessDate, LastDate)
※ファイルOPENしていると日付の取得はダメでした。閉じてると取得します。
'案2(関数を使う)
' Dim LastDate As Date
' LastDate = FileDateTime(FileName)
'案3("Scripting.FileSystemObject"を使う)
' Dim FSO
' Dim LastDate As Date
' Set FSO = CreateObject("Scripting.FileSystemObject")
' LastDate = FSO.GetFile(FileName).DateLastModified
どれも、撃沈しました。どれもOPEN日付が好きみたいです。
今回プログラムを変更しなければ、ならないファイルがざっと500弱あり
ハチさんのを見て閃いたのが
「ファイル情報取得(構造体)」のようなマクロを作成しようと思います。
"Scripting.FileSystemObject"を利用して
該当するExcelファイル情報の構造体(ファイル名、更新日時)を用意して
コントロールボタン(マクロ名:SetLastDate)を押下した時に
構造体からファイル名をマッチングして更新日時を取得し
LastUpdateDateにセットしようかと思います。
なんだかちょっと泥臭いソースになってしまいます。(笑
「保存をキャンセルすると前回の更新日時に戻る」って事は、
プロパティか設定がどっかにあるはずなんですよね?
正当な取得方法がわかると便利だと思いますので、
今後の参考にお教え頂くと幸いです。
|
|