JScript/WSH で,Excelファイルを読み書きしよう
JScriptからExcelを操作するコード。
- 新規Excelファイルの自動生成
- 既存のブックの読み書き
などできて便利。
下記のスクリプトを保存して,ダブルクリックする。→ Excelが生成される。
hoge.js
var filename = "エクセル.xls"; // 定数 var xlMaximized = -4137; // Excelを立ち上げる var excel = WScript.CreateObject("Excel.Application"); excel.Visible = true; // 新規ワークブックを作成 excel.Workbooks.Add(); // 既存のブックを開きたい場合は,かわりに下記を実行。 //excel.Workbooks.Open( filename ); var book = excel.Workbooks( excel.Workbooks.Count ); // ワークブックを取得 excel.ActiveWindow.WindowState = xlMaximized; // 最大化 // ブックを編集 var sheet = book.WorkSheets("Sheet1"); // シートを取得 sheet.Cells( 1, 1 ).Value = "hoge"; sheet.Cells( 1, 2 ).Formula = "=1+1"; // ブックを保存 excel.DisplayAlerts = false; // 既存ファイルがあっても上書きする book.SaveAs( filename ); // Excelを閉じて終了 excel.Quit(); excel = null;
概説:
- excel.Workbooks.Count
- 現在のExcelが開いているワークブックの総数
- 既存のブックを開く
補足
Excel.Applicationについての入手可能な情報は,だいたいVBScriptだ。JScripterには困る。
VBScript から Excel を使う:ある nakagami の日記:So-netブログ
http://nakagami.blog.so-net.ne.jp/200...
WSH(vbscript)からExcel を操作する
http://www012.upp.so-net.ne.jp/scotch...
(↑リンク切れ)
Excel の処理 ( VBScript のクラス )
http://winofsql.jp/VA003334/asp051106...
しかし,今回のコードで挙げたパターンがわかってしまえば,あとはVBAでいつも書いているコードを忠実にJavaScriptの世界に持ってくるだけ。
関連する記事:
Excelブックの「シート目次」を,自動的に作成するバッチ (WSH/JScriptで,各シートへのリンク付きの目次を自動生成)
http://language-and-engineering.hatenablog.jp/entry/20110921/p1
Excelのマクロを外部に吸い出して保存するバッチ (WSH/JScriptで,VBAのソースコードだけを抜き取る)
http://language-and-engineering.hatenablog.jp/entry/20100524/p1
JScript / VBScript (WSH)で,IEを自動操作しよう
http://language-and-engineering.hatenablog.jp/entry/20090713/p1