Help us understand the problem. What is going on with this article?

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

More than 1 year has passed since last update.

やろうとしたこと

エクセルのマクロを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時間くらいハマった・・・。

namitan
ColdFusionでごはん食べてます。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away