WSH JScriptでファイル一覧結果をExcelで表示

WSHを使用した、Excel操作の備忘録。

WSHのスクリプトを実行したカレントフォルダ配下のフォルダとファイルの一覧をExcelに表示します。
出力は別にExcelではなくても良いのですが、とりあえずExcel操作の練習も兼ねて。
 

一覧表示処理は再帰呼び出しして、深いサブフォルダまで見に行きます。
そして、ついでにフォルダ階層の深さに合わせて、列をずらしインデント表示します。
 
 

WSH JScriptでファイル一覧結果をExcelで表示

 

sample3.js

var excel = new ActiveXObject("Excel.Application");
excel.Visible = true;

var book = excel.Workbooks.Add();
var sheet = book.Worksheets(1);
var fso = new ActiveXObject("Scripting.FileSystemObject");
var row=0;

getFolders(".",0);

function getFolders(path,depth){
    var folders = fso.GetFolder(path);
    var em = new Enumerator(folders.SubFolders);
    for( em.moveFirst(); !em.atEnd(); em.moveNext() ){
        row++;
        sheet.Range(String.fromCharCode(65+depth)+row).Value = em.item();
        getFolders(em.item(),depth+1);
        getFiles(em.item(),depth+1);
    }
    if(depth==0 && row==0){
        sheet.Range("A1").Value = "「" + fso.getParentFolderName(WScript.ScriptFullName) + "」配下にフォルダがありません。";
    }
}

function getFiles(path,depth){
    var files = fso.GetFolder(path).Files;
    var e = new Enumerator(files);
    for ( ; !e.atEnd(); e.moveNext()) {
        var file = e.item();
        row++;
        sheet.Range(String.fromCharCode(65+depth)+row).Value = file.name;
    }
}

上記スクリプトをsample3.jsなど適当なファイル名で保存して、ダブルクリックすると実行できます。

← ブログ一覧へ戻る