JavaScript
Windows
JScript

Windowsユーザなら、JScriptに一度は触れてみて

More than 1 year has passed since last update.

Javascriptはなんとなく書けるんだけど、

会社のWindows PCにnode.jsを入れたらダメ、エクセルマクロだと仰々しい・・・。

なんかいい方法は無いんだろうか。

そこで検討してもらいたいのがPoweShell JScriptなのです!


JScriptとは

Wikiより引用


JScript(ジェイ・スクリプト)は、マイクロソフト社製のスクリプト言語であり、Microsoft Windows 上で動作する。

JavaScriptと類似しており、Internet Explorer を使用したクライアントサイドスクリプティング処理、および Internet Information Services(IIS) などを使用したサーバサイドスクリプティング処理を記述することができる。


JScriptはECMAScript3にほぼ準拠していますので、基本的なことはできると思います。

jscript.png

また、OLE操作ができますので、Ofiiceアプリの操作も可能になります。


JScirptファイル

拡張子はjsです。Windows上でjsファイルを作ると、勝手にWindows Based Script Hostに関連付けされます。

jsの中身はそのままjavascriptのコードを書けます。

また、他のJScriptファイルをインクルードしたいときやOfiiceの定数を使いたいときは、

wsf という拡張子にして、下記のように記述します。


module.jsをインクルード

<job id=“ジョブ名">

<reference guid="{00020813-0000-0000-C000-000000000046}"/>
<script language="JScript" src="module.js"></script>
<script language="JScript">

var hoge = 1;
</script>

</job>



サンプル(Excel操作)

例えばExcelファイルを操作したいときは下記のような記述になります。


// エクセルオブジェクト生成
var excel = new ActiveXObject("Excel.Application");

// ワークブック新規作成
var book = excel.Workbooks.Add();

// シート
var sheet = book.WorkSheets(1); // 1シート目(1オリジン!)

// セル
sheet.Range('A1').Value = 'ほげほげ';
sheet.Cells(1,2).Value = 'ふがふが'; // 0からではなく、1オリジン!
sheet.Cells(2,1).Formula = '=hyperlink("./hoge/fuga.pdf")'; // エクセル関数を使うときはFormula!

// 保存
excel.DisplayAlerts = false; // 上書き
book.SaveAs( 'filename.xlsx' );

// 終了
book.Close();
excel.Quit();
excel = null;

簡単ですね!僕は、納品時に、納品するエクセルファイル全てを


  • 1シート目のA1にフォーカスを合わせる

  • 印刷モードにする

  • 枠線を消す

というJSCriptを用意しています。

みなさんも、是非PoweShell JScriptを使ってみてください。