Now - FileDateTime(currentFile) の形で取得しています。この経過時間を使って、表示と、条件判断したいのです。表示は、何日何時間何分経過していますと表示です。次に、何分以上経過したらという条件判断ができるようにして必要があれば警告を出すようにしたいのです。
後者の経過時間による条件判断は、上記の経過時間を、整数の分単位に変換できればこれはできるような気がします。
Private Sub Workbook_Open() ThisWorkbook.Sheets(1).Range("A1") = Format(Now - FileDateTime(currentFile), "hh:mm:ss") Dim d As Integer '経過時間(単位:日数) Dim h As Integer '経過時間(単位:h) Dim m As Integer '経過時間(単位:m) d = Day(Now - FileDateTime(currentFile)) h = Hour(Now - FileDateTime(currentFile)) m = Minute(Now - FileDateTime(currentFile)) Debug.Print m + (h * 60) + (d * 24 * 60) End Sub
上記はbookオープン時に一番目のシートA1セルに現在時刻から、
ファイルのタイムスタンプを引いた経過時間を表示させます。
何分以上経過したらという条件判断ができるようにということ
ですので
m + (h * 60) + (d * 24 * 60)
を使用すれば比較できると思います。
また、月単位も考慮したい場合は上記と同様に
Month関数を利用すれば大丈夫だと思います。
http://msdn2.microsoft.com/ja-jp/library/s70thwaz(VS.80).aspx
A1にファイルのパスを入れて、B1に経過時間を表示するマクロです。
1分以上のファイルの場合はメッセージボックスがでます。
Sub Macro() time1 = FileDateTime(Range("A1").Value) time2 = Now Range("B1").Value = DateDiff("d", time1, time2) & "日" & Hour(time2 - time1) & "時間" & Minute(time2 - time1) & "分" & Second(time2 - time1) & "秒経過しています" If DateDiff("n", time1, time2) > 1 Then MsgBox "1分以上経過しています" End If End Sub
Private Sub Workbook_Open() ThisWorkbook.Sheets(1).Range("A1") = Format(Now - FileDateTime(currentFile), "hh:mm:ss") Dim d As Integer '経過時間(単位:日数) Dim h As Integer '経過時間(単位:h) Dim m As Integer '経過時間(単位:m) d = Day(Now - FileDateTime(currentFile)) h = Hour(Now - FileDateTime(currentFile)) m = Minute(Now - FileDateTime(currentFile)) Debug.Print m + (h * 60) + (d * 24 * 60) End Sub
上記はbookオープン時に一番目のシートA1セルに現在時刻から、
ファイルのタイムスタンプを引いた経過時間を表示させます。
何分以上経過したらという条件判断ができるようにということ
ですので
m + (h * 60) + (d * 24 * 60)
を使用すれば比較できると思います。
また、月単位も考慮したい場合は上記と同様に
Month関数を利用すれば大丈夫だと思います。
http://msdn2.microsoft.com/ja-jp/library/s70thwaz(VS.80).aspx
おっともっと簡単にできるんですね。
おっともっと簡単にできるんですね。