Baccho Log

No Image

Sponsored Link

[WSH]Excelを操作する

  • 投稿日:
  • 更新日:
Tags:
Excel JScript WSH
Categories:
プログラミング

Excelを扱う

Excel.Applicationオブジェクトを作成する

new ActiveXObject("Excel.Application");
Excel.Applicationオブジェクトのメソッド/プロパティについては、VBAとほぼ同じ(っぽい)。

Ex.1)Excelの新規ブックを作成して保存して閉じる

var excelApp     = new ActiveXObject("Excel.Application");
// Excel画面を表示する(非表示にしたい場合はfalseにする)
excelApp.Visible = true;
// 新規ワークブックを作成
var workbook     = excelApp.Workbooks.Add();
// 名前をつけて保存
workbook.SaveAs("Excelファイルの名前を入れよう");
// 新規ワークブックを閉じる
workbook.Close();
// Excelを閉じる
excelApp.Quit();
// Excel.Applicationオブジェクトの解放
excelApp = null;

Ex.2)既存のExcelブックを開く

var excelApp     = new ActiveXObject("Excel.Application");
excelApp.Visible = true;
// 既存のExcelファイルを開く(エスケープ文字で記載すること)
var workbook     = excelApp.Workbooks.Open("C:\\User\\Desktop\\TestExcel.xlsx");
// 名前をつけて保存
workbook.SaveAs("Excelファイルの名前を入れよう");
// 新規ワークブックを閉じる
workbook.Close();
// Excelを閉じる
excelApp.Quit();
// Excel.Applicationオブジェクトの解放
excelApp = null;

WSHのExcel操作備忘録

// Excelオブジェクトの生成
var excelApp   = new ActiveXObject("Exc2el.Application");
// 新規ワークブックを作成
var workbook   = excelApp.Workbooks.Add();
// シート1を選択
var worksheet  = workbook.Worksheets(1);
// シート名の更新
worksheet.Name = "Sheet1の名前を入れよう";
// セルに文字を入力する
worksheet.Cells(1,1).Value = "A1に入る文字";
// セルに関数を入力する
worksheet.Cells(2,1).Formula = "=SUM(B1:B3)";
worksheet.Range(worksheet.Cells(1,2),worksheet.Cells(3,1));

Ex)functionで纏める

var fso   = new ActiveXObject("Scripting.FileSystemObject");
var fileName = "C:\\Users\\test";
workbookCreate(fso.getAbsolutePathName(fileName), true,
    function(workbook,excel){
        // ここに処理を書いていく
        var worksheet = workbook.Worksheets(1);
        worksheet.Cells(1, 2).Value = "hoge";
        worksheet.Cells(2, 2).Value = "hoge";
    }
);

// ワークブックを作成する関数
function workbookCreate(filename,visible,func) {
    runExcel(visible,function(excel){
        var workbook = excel.Workbooks.Add();
        try {
            try {
                func(workbook,excel);
            } finally {
                workbook.SaveAs(filename);
            }
        } finally {
            workbook.Close();
        }
    });
}

// エクセルオブジェクトの生成
function runExcel(visible, func) {
    var excel           = new ActiveXObject("Excel.Application");
    excel.Visible       = visible;
    excel.DisplayAlerts = false;
    try {
        func(excel);
    } finally {
        excel.Quit();
        excel = null;
    }
}
最初の投稿です[Excel, VBA]セルの行と列を取得する »

Sponsored Link

コメントする

記事の感想や修正依頼等ありましたら、コメントをお願いいたします