あなたは社内のメンバーにファイルの更新を依頼して、上書き保存してもらったとき、更新したことを教えてほしいと思ったことはありませんか?
あなた「Aさん、あのファイル更新してくれた?」
Aさん「はい!昨日入れました!」
あなた「了解!ありがとう!(心の声:更新したら言ってよ~)」
あるあるですよね?更新したら教えてほしいですが、タイミングによっては言いそびれてしまう事もあります。
いちいち聞くのも面倒ですが、いちいち言うのも面倒です。更新したのが自動で通知されれば、より便利ですよね。
エクセルのマクロを使えば、フォルダを更新したら自動で通知を出してくれます。
今回は、「共有フォルダのファイル更新をExcelで検知!通知マクロVBAコード完全ガイド【初心者OK】」を紹介します。
共有フォルダのファイル更新をExcelで検知!通知マクロVBAコード完全ガイド
共有フォルダのファイル更新をExcelで検知!通知マクロVBAコード完全ガイドです。
ファイルが更新されたら、下の画像のようなメッセージが出る方法で紹介します。
1.「alt」+「F11」 →「挿入」 →「標準モジュール」をクリック
2.「Module1」をクリック
3.コードを入力
1分おきにファイルをチェックする、という意味です。
コードの2行目の” ”のところに更新を確認したいファイルのパスを入れます。
4.「開発」 →「マクロ」 →「実行」をクリック
コードが入力できたら、マクロを実行します。
5.ファイルを更新する →通知が出る
例えば、検知対象のエクセルファイル内のA1セルを「test3」→「変更したよ」にしました。
1分待ちます・・・通知が出ました!
これでファイルの更新は自動でわかるようになりましたね~。
まとめ
共有フォルダのファイル更新をExcelで検知!通知マクロVBAコード完全ガイドです。
1.「alt」+「F11」 →「挿入」 →「標準モジュール」をクリック
2.「Module1」をクリック
3.コードを入力
4.「開発」 →「マクロ」 →「実行」をクリック
5.ファイルを更新する →通知が出る
これならファイルの更新の確認はスムーズになりますね!
最後に、今回使用したコードです。
' 標準モジュールに貼り付けてください
Public gLastModified As Date
Public Const targetFilePath As String = "C:\Users\**********.xlsx"
Sub StartMonitoring()
' 初期状態での最終更新日時を記録
On Error Resume Next
gLastModified = FileDateTime(targetFilePath)
If Err.Number <> 0 Then
MsgBox "対象ファイルが見つかりません。" & vbCrLf & targetFilePath, vbCritical
Exit Sub
End If
On Error GoTo 0
' 60秒後にチェックする
Application.OnTime Now + TimeValue("00:00:10"), "CheckFileUpdate"
End Sub
Sub CheckFileUpdate()
Dim currentModified As Date
On Error Resume Next
currentModified = FileDateTime(targetFilePath)
If Err.Number <> 0 Then
MsgBox "ファイルが見つかりません。監視を終了します。", vbExclamation
Exit Sub
End If
On Error GoTo 0
' 更新されていれば通知
If currentModified > gLastModified Then
MsgBox "ファイルが更新されました:" & vbCrLf & targetFilePath, vbInformation
gLastModified = currentModified
End If
' 再度監視を続行(60秒後)
Application.OnTime Now + TimeValue("00:00:10"), "CheckFileUpdate"
End Sub
Sub StopMonitoring()
On Error Resume Next
Application.OnTime EarliestTime:=Now + TimeValue("00:00:10"), _
Procedure:="CheckFileUpdate", Schedule:=False
MsgBox "監視を停止しました", vbInformation
End Sub