himorogiの日記

主にプログラミングに関することなど。少々ハード(電子工作)についても。

WSH の Javascript から Excel の Dialog を利用する

WSH の Javscript では MsgBox や InputBox、FileOpenDialog などが用意されていないため、他の Application 環境を経由して間接的にそれらで提供された Dialog を利用する必要がある。
MsgBox や InputBox は VBScript で手続きを記述してから .wsf で同じスクリプトファイルに保存し、呼び出せば良い。
FileOpenDialog は Excel のものを参照して使う。

// Excel Handle
//
var oApp = new ActiveXObject("Excel.Application");

var pathXls;
var oXls;

// FileSystem Handle
//
var oFS = new ActiveXObject("Scripting.FileSystemObject");

// Using FileOpenDialog
//
do{
  pathXls = oApp.GetOpenFilename("ワークシート (*.xls),*.xls");
  if(!pathXls){ WScript.Ouit(1); };
} while( !oFS.FileExists(pathXls) );

var oWb = oApp.Workbooks.Open(pathXls);

WScript.Echo( "B7:" + oWb.worksheets.item(1).cells(7,2).value);