Excelワークブックを開くだけのコードをSAS EGで作成しました。Excel ワークブックには、「ワークブックを開く」イベントで実行される VBA コードが含まれています。ほとんどすべてのコードは、毎日最初に開いたときにすべてのデータ接続を更新するだけです。
SAS プログラムを手動で実行すると、計画どおりに動作します。VBA マクロをトリガーする Excel ファイルを開きます。サーバーで SAS EG ジョブをスケジュールすると、ジョブは実行されますが、Excel ファイルには何も起こりません。また、SAS コードや My Windows Scheduler ログにもエラーは表示されません。
これが私のSASコードです:
options noxwait noxsync;
x '"C:\Program Files\Microsoft Office\Office15\excel.exe" "\\route\to\file\excel_macro_playground.xlsm"';
run;
これが私のVBAです:
Private Sub Workbook_Open()
Dim wsSheet As Worksheet
On Error Resume Next
Set wsSheet = Sheets("book_helper")
On Error GoTo 0
If wsSheet Is Nothing Then
Sheets.Add.Name = "book_helper"
ActiveWorkbook.RefreshAll
Sheets("book_helper").Range("A1").Value = Date
Sheets("book_helper").Visible = xlVeryHidden
Application.DisplayAlerts = False
ThisWorkbook.Save
Application.DisplayAlerts = True
Application.Quit
Else
If Sheets("book_helper").Range("A1").Value < Date Or Sheets("book_helper").Range("A1").Value = "" Then
ActiveWorkbook.RefreshAll
Sheets("book_helper").Range("A1").Value = Date
Sheets("book_helper").Visible = xlVeryHidden
'ActiveWorkbook.Close savechanges:=True
'Application.Quit
Application.DisplayAlerts = False
ThisWorkbook.Save
Application.DisplayAlerts = True
Application.Quit
End If
End If
End Sub
そしてもちろん、SAS EG Scheduling ツールを使用してジョブをセットアップします。私の他の仕事はすべてうまくいっています。これが期待どおりに機能するために変更する必要があるものはありますか?