アクセスログで見かけた
「wsh excel 3つ目シート選択」
という検索キーワードをキッカケに作った、ExcelブックでN枚目のシートを選択するVBScriptをご紹介しました。
「wsh」ということですから、VBScriptではなく、JScriptを探していらした可能性も考えられます。
N枚目のシートを選択するサンプルスクリプト
以下のスクリプトを拡張子「.js」で保存して、Excelファイルをドラッグアンドドロップすると、3枚目のシートが選択され上書き保存されます。
var NUM = 3; // 選択したいシート番号
if ( WScript.Arguments.Count() === 0 ) {
WScript.Echo(NUM + '枚目のシートを選択したいExcelファイルを、ドラッグ&ドロップしてください。');
WScript.Quit();
}
var xls = new ActiveXObject('Excel.Application');
xls.Visible = false;
var fso = new ActiveXObject('Scripting.FileSystemObject');
for ( var i = 0; i < WScript.Arguments.Count(); i++ ) {
var f_path = WScript.Arguments(i);
switch( fso.GetExtensionName(f_path).toUpperCase() ) {
case 'XLS':
case 'XLSX':
case 'XLSB':
case 'XLSM':
selectTheSheet(f_path);
break;
default:
WScript.Echo(fso.GetFileName(f_path) + ' は、Excelファイルではありません。');
}
}
fso = null;
xls.Quit();
xls = null;
WScript.Echo('スクリプトが終了しました。');
// -- main end ----
function selectTheSheet(fullpath) {
var bk = xls.Workbooks.Open(fullpath);
if ( bk.Sheets.Count >= NUM ) {
if ( bk.Sheets(NUM).Visible ) {
bk.Sheets(NUM).Select();
bk.Save();
}
}
bk = null;
return;
}
サンプルスクリプトについて
基本構造は、ご紹介済みのVBScriptと同じです。
main部分では、ExcelとFileSystemObjectを用意して、
var xls = new ActiveXObject('Excel.Application');
xls.Visible = false;
var fso = new ActiveXObject('Scripting.FileSystemObject');
ドラッグ&ドロップされたファイルを順番に処理しています。
for ( var i = 0; i < WScript.Arguments.Count(); i++ ) {
シートの選択処理を行う関数では、ブックを開いて、
var bk = xls.Workbooks.Open(fullpath);
指定された枚数以上にシートが存在していて、
if ( bk.Sheets.Count >= NUM ) {
そのシートが非表示になっていなければ、
if ( bk.Sheets(NUM).Visible ) {
選択して上書き保存を行っています。
bk.Sheets(NUM).Select();
bk.Save();
Home » WSH・Windows Script Hostの使い方 » ExcelのN枚目のシートを選択するJScript