LoginSignup
1
0

More than 5 years have passed since last update.

【ColdFusion】cfexecuteからexcelを開くスクリプトが動作しない

Posted at

やろうとしたこと

エクセルのマクロをCFから実行するために、マクロ起動用のVBScriptを作って実行しようとしたんですが。

runExcelMacro.cfm
batchFilename = "c:\runExcelMacro.vbs";
variousParameters = '"#エクセルファイルのパス#" #実行するマクロ名#';
cfexecute(name="cmd", arguments="/C #batchFilename# #variousParameters#");
runExcelMacro.vbs
Dim obj
Set obj=WScript.CreateObject("Excel.Application")

obj.DisplayAlerts = False
obj.Workbooks.Open WScript.Arguments(0)
obj.Application.Run WScript.Arguments(1)

obj.Workbooks.Close
obj.Quit

どうなった?

なんか動かない。VBScriptからログ吐くようにしてみると、どうやらWorkbooks.Openに失敗している様子。

でも、直接VBScriptを実行すると問題なく動くんですよ・・・なぜだ。

解決方法を見つけたよ

Run VBScript using CFExecute throws error but works fine via command line

Windows Serverのバグ・・・だと・・・。(脱力)

使ってるのはWindows Server 2016なんですが、まだ直っていないんですね。

自分の場合、C:\Windows\System32\config\systemprofileに"Desktop"フォルダを追加するだけでいけました。

3時間くらいハマった・・・。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0