WSHを使用した、Excel操作の備忘録。
WSHのスクリプトを実行したカレントフォルダ配下のフォルダとファイルの一覧をExcelに表示します。
出力は別にExcelではなくても良いのですが、とりあえず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など適当なファイル名で保存して、ダブルクリックすると実行できます。





