人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

VBAに関する質問です。現在時刻から、ファイルのタイムスタンプを引いた経過時間を、
Now - FileDateTime(currentFile) の形で取得しています。この経過時間を使って、表示と、条件判断したいのです。表示は、何日何時間何分経過していますと表示です。次に、何分以上経過したらという条件判断ができるようにして必要があれば警告を出すようにしたいのです。
後者の経過時間による条件判断は、上記の経過時間を、整数の分単位に変換できればこれはできるような気がします。

●質問者: isogaya
●カテゴリ:コンピュータ 科学・統計資料
✍キーワード:VBA タイムスタンプ ファイル 単位 後者
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● SALINGER
●35ポイント

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

http://www.geocities.jp/cbc_vbnet/function/date.html


2 ● K_SUKE
●35ポイント ベストアンサー
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

◎質問者からの返答

おっともっと簡単にできるんですね。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ