アプリ版:「スタンプのみでお礼する」機能のリリースについて

BATファイルを用い、EXCEL形式のファイルをCSV形式に変換しようとしています。
BATを実行すると、
「xxx,bat(99,1) WScript.CreateObject:"EXCEL.Application"という名前のオートメーションクラスが見つかりませんでした 」というエラーになりました。
該当の行では、
var EXCEL = WScript.CreateObject("EXCEL.Application") ;
と定義しています。

これの原因と解決策を教えていただけるよう
よろしくお願いします。

OS:WindowsServer2012R2

質問者からの補足コメント

  • うーん・・・

    全文を一度に載せることができないので分解して載せます。

    @if (1==1) /*
    @echo off


    if "%~2"=="" goto :USAGE
    if "%~1"=="/?" goto :USAGE


    :MAIN
    CScript //nologo //E:JScript "%~f0" %*
    If ERRORLEVEL 1 goto :USAGE
    goto :eof


    :USAGE
    echo USAGE:%~n0 [-s シート名] 入力ファイル 出力ファイル
    echo xlsファイルを開き、CSV(カンマ区切り)形式で保存(SaveAs)します。
    echo.
    goto :eof

    @end

      補足日時:2016/04/11 11:13
  • うーん・・・

    //---------------------------------------------------------- セットアップ
    var Args = WScript.Arguments;
    var EXCEL = WScript.CreateObject("EXCEL.Application");
    var SHELL = WScript.CreateObject("WScript.Shell");


    function echo(o){ WScript.Echo(o); }


    // EXCELの定数
    var xlCSV = 6;


    //---------------------------------------------------------- 引数処理

      補足日時:2016/04/11 11:15
  • うーん・・・

    //---------------------------------------------------------- 引数処理
    var sheet = null;
    var infile = null;
    var outfile = null;
    for (var i=0; i<Args.Length; i++){
    var prm = Args(i);
    switch (prm) {
    case "-s":
    sheet = Args(++i);
    break;
    default:
    if (!infile) {
    infile = prm;
    } else {
    outfile = prm;
    }
    break;
    }
    }

      補足日時:2016/04/11 11:16
  • うーん・・・

    if (!infile){
    echo("入力ファイルが指定されていません");
    WScript.Quit(9);
    }
    if (!outfile){
    echo("出力ファイルが指定されていません");
    WScript.Quit(9);
    }


    //---------------------------------------------------------- 主処理
    // カレントディレクトリの切り替え
    if (EXCEL.DefaultFilePath != SHELL.CurrentDirectory){
    EXCEL.DefaultFilePath = SHELL.CurrentDirectory;
    delete EXCEL;
    EXCEL = WScript.CreateObject("EXCEL.Application");
    }

      補足日時:2016/04/11 11:17
  • うーん・・・

    // ファイルを開く
    var book = EXCEL.Workbooks.Open(infile);
    EXCEL.DisplayAlerts = false;


    try{
    // シート切り替え
    if (sheet != null){
    book.Worksheets(sheet).Activate();
    }
    // xls変換
    book.SaveAs(outfile, xlCSV);
    } catch(e){
    echo(e.number + ":" + e.description);
    } finally {
    book.Close(false);
    }

      補足日時:2016/04/11 11:17

A 回答 (1件)

ソースコードを省略せずに全部載せてください。

    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!