LoginSignup
52
63

More than 5 years have passed since last update.

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

Last updated at Posted at 2017-03-10

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を使ってみてください。

52
63
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
52
63