Range オブジェクトの作成に数値を使用します
プログラミングで処理を行うので、Range("A1:A20") というような表現を使わずに、Cells(行,列) を使って Range オブジェクトを作成しています。
// **************************** // 初期処理 // **************************** WScript.Echo( "処理を開始します" ); var WshShell = new ActiveXObject("WScript.Shell"); var ExcelApp = new ActiveXObject( "Excel.Application" ); // デバッグ時は、Excel の本体を表示させて状況が解るようにする ExcelApp.Visible = true; // UI でチェックさせるようなダイアログを表示せずに実行する ExcelApp.DisplayAlerts = false; try { // **************************** // ブック追加 // **************************** var Book = ExcelApp.Workbooks.Add(); // 通常一つのシートが作成されています var Sheet = Book.Worksheets( 1 ); // **************************** // シート名変更 // **************************** Sheet.Name = "JScriptの処理"; // **************************** // セルに値を直接セット // **************************** for( var i = 1; i <= 10; i++ ) { Sheet.Cells(i, 1) = "処理 : " + i; } // **************************** // 1つのセルから // AutoFill で値をセット // **************************** Sheet.Cells(1, 2) = "子"; // 基となるセル範囲 var SourceRange = Sheet.Range(Sheet.Cells(1, 2), Sheet.Cells(1,2)); // オートフィルの範囲(基となるセル範囲を含む ) var FillRange = Sheet.Range(Sheet.Cells(1, 2), Sheet.Cells(10,2)); SourceRange.AutoFill(FillRange); // **************************** // 保存 // **************************** Book.SaveAs( WshShell.CurrentDirectory + "\\sample.xlsx" ); } catch (error) { ExcelApp.Quit(); ExcelApp = null; WshShell.Popup(error.description); WScript.Quit(); } ExcelApp.Quit(); ExcelApp = null; // **************************** // ファイルの最後 // **************************** WshShell.Popup("処理を終了します");
関連する記事
JScript : Visual Studio Code で、WSH を使用する準備JScript でエラーが発生した行を知る方法
実行プログラムが cscript.exe や wscript.exe の場合、try 〜 catch 内のエラー発生の行番号を知る事ができないので、以下の手順で処理します。1) 拡張子を hta に変更する 2) WScript を使った実行をコメントにする 3) ソースの先頭に <script> ソースの最後に </script> を記述する 4) さらにソースの先頭に <meta http-equiv="x-ua-compatible" content="ie=edge"> を記述する 5) catch の中で、error.stack を表示する 6) エクスプローラからこのソースをダブルクリックする ( HTML アプリケーションホストで実行させる )
.hta 用コード
<meta http-equiv="x-ua-compatible" content="ie=edge"> <script> // **************************** // 初期処理 // **************************** //WScript.Echo( "処理を開始します" ); var WshShell = new ActiveXObject("WScript.Shell"); var ExcelApp = new ActiveXObject( "Excel.Application" ); // デバッグ時は、Excel の本体を表示させて状況が解るようにする ExcelApp.Visible = true; // UI でチェックさせるようなダイアログを表示せずに実行する ExcelApp.DisplayAlerts = false; try { // **************************** // ブック追加 // **************************** var Book = ExcelApp.Workbooks.Add(); // 通常一つのシートが作成されています var Sheet = Book.Worksheets( 1 ); // **************************** // シート名変更 // **************************** Sheet.Name = "JScriptの処理"; // **************************** // セルに値を直接セット // **************************** for( var i = 1; i <= 10; i++ ) { Sheet.Cells(i, 1) = "処理 : " + i; } // **************************** // 1つのセルから // AutoFill で値をセット // **************************** Sheet.Cells(1, 2) = "子"; // 基となるセル範囲 var SourceRange = Sheet.Range(Sheet.Cells(1, 2), Sheet.Cells(1,2)); // オートフィルの範囲(基となるセル範囲を含む ) var FillRange = Sheet.Range(Sheet.Cells(1, 2), Sheet.Cells(10,2)); SourceRange.utoFill(FillRange); // **************************** // 保存 // **************************** Book.SaveAs( WshShell.CurrentDirectory + "\\sample.xlsx" ); } catch (error) { ExcelApp.Quit(); ExcelApp = null; WshShell.Popup(error.description + error.stack); WScript.Quit(); } ExcelApp.Quit(); ExcelApp = null; // **************************** // ファイルの最後 // **************************** WshShell.Popup("処理を終了します"); </script>
関連する Microsoft ドキュメント
Application オブジェクト Workbook オブジェクトのコレクション Workbook オブジェクト Worksheet オブジェクトのコレクション Worksheet オブジェクト Cells プロパティ
|