2016-07-27 9 views
-2

たとえば、ネットワークドライブにE​​xcelファイルを保存しています。このファイルでは、ユーザーが指定した時間に自動バックアップを有効にするソリューションを実装したいと考えています。 File.xlsx指定時間にVBAバックアップスクリプトを作成する方法

スクリプトは、バックアップ、このファイルのすべての午前10時、午後4時から5:00 AM:たとえば

。それは可能でしょうか?

+0

ファイルをホストしているマシンで直接タイムアウトタスクを実行する(ファイルをどこかにコピーする)ことは、誰かが与えられたときにこのファイルを使って作業することを "望んでいる"時間... –

+0

ちょうど別の提案、あなたはタスクスケジューラでいくつかのバッチスクリプトを書くことができます。 –

答えて

0

使用以下このサブだけ自分自身のバックアップ・セーブマクロを追加BackupFile

Sub SetSchedule() 

Application.OnTime TimeValue("5:00:00"), "BackupFile" 

Application.OnTime TimeValue("10:00:00"), "BackupFile" 

Application.OnTime TimeValue("16:00:00"), "BackupFile" 

Application.OnTime TimeValue("23:59:00"), "SetSchedule" 

End Sub 

また、オープンサブからそれを呼び出すと呼ばれる:

Sub Workbook_Open() 

    Call SetSchedule 

End Sub 
+0

ユーザーがファイルを開くたびにバックアップコピーを作成する場合はどうすればよいですか?バックアップファイル名に日付とタイムスタンプを付加しますか? – PeterS

+0

これはタイムスケジュールの設定とは異なりますが、ワークブックのオープンイベントからバックアップマクロを呼び出すだけです – RGA

1

スケジュールを作成することです最善の方法をファイルをバックアップするバッチまたはスクリプトファイルを実行するタスク。

次に、スケジュールされたタスクのパラメータの例を示します。

C:\ WINDOWS \ System32に\ WScript.exeはC:\ Excelファイルの\ backup.vbs」

保存backup.vbs

としてこのスクリプトのVBScript

Const FolderName = "C:\Excel Files\" 
Const FileName = "Data.xlsm" 
Dim fso, NewName, sb 

Set sb = CreateObject("System.Text.StringBuilder") 
sb.AppendFormat "{0:yyyy-MM-dd} {0,8:t}", CDate(Now) 

NewName = Replace(sb.ToString(), ":" ,".") & " - " & FileName 

Set fso = WScript.CreateObject("Scripting.Filesystemobject") 

fso.CopyFile FolderName & FileName, FolderName & NewName,True 
関連する問題