Excel VBAをJavaScriptに翻訳 その3
Excel VBAをJavaScriptに翻訳 その3:
前回では、VBAをJavaScriptに翻訳する簡単な翻訳機を作成しました。
今回は、VBAのMsgBoxとDate()をJavaScriptで定義します。
npm(Notable Pseudocode Mashups)はこれを実現するためのNode.jsのためのパッケージがたくさんあります。世界中のプログラマーが作ったパッケージをそのまま使うことができます。
必要なパッケージをローカルにインストールして、JavaScriptを作ります。
JavaScriptへ翻訳する元VBAファイルです。
MsgBoxの機能を実現するために、npmからdialogをローカルにインストールします。
dialog:https://www.npmjs.com/package/dialog
※ tomtest.vbと同じディレクトリの直下にインストールします。
Dateの機能を実現するために、npmからdate-timeをローカルにインストールします。
date-time:https://www.npmjs.com/package/date-time
今回の本題のJavaScriptになります。
3つの関数を定義しています。
* Print : 引数 s をconsole.logでターミナルに出力します。
* MsgBox : 引数 s をdialog.infoでダイアログボックスに出力します。
* Date : date-timeの戻り値を返却する関数を定義します。
tomtest.vbを翻訳すると下記のJavaScriptを自動作成することになります。
※VBAではDate()の'()'は省略されるが、JavaScriptでは'()'は明示する。
ターミナルにて以下のコマンドを実行。
JavaScripの記述内容がそれぞれ実行されています。
npmのパッケージを利用して実現したい機能の関数を定義しました。
npmには他にもたくさんのすばらしいパッケージが用意されています。
これらのパッケージを流用または拡張して新たな機能を実現することも可能です。
次回は、tmotest.vbをtomtest.jsへ翻訳するJavaScriptを作成します。
はじめに
前回では、VBAをJavaScriptに翻訳する簡単な翻訳機を作成しました。今回は、VBAのMsgBoxとDate()をJavaScriptで定義します。
npm(Notable Pseudocode Mashups)はこれを実現するためのNode.jsのためのパッケージがたくさんあります。世界中のプログラマーが作ったパッケージをそのまま使うことができます。
必要なパッケージをローカルにインストールして、JavaScriptを作ります。
前提
- OS : Windows7以上
- PoweShellのターミナルで実行
- VSCodeでコード編集
- node.js環境構築済み
tomtest.vb
JavaScriptへ翻訳する元VBAファイルです。Debug.Print("Hello World") ' Debug.Print MsgBox("Hello World") ' MsgBox Debug.Print(Date) ' Date()
npmパッケージのインストール
dialog
MsgBoxの機能を実現するために、npmからdialogをローカルにインストールします。dialog:https://www.npmjs.com/package/dialog
※ tomtest.vbと同じディレクトリの直下にインストールします。
npm install --save dialog
date-time
Dateの機能を実現するために、npmからdate-timeをローカルにインストールします。date-time:https://www.npmjs.com/package/date-time
npm install --save date-time
tomdef.js
今回の本題のJavaScriptになります。function Print(s) { console.log(s); }; function MsgBox(s) { var dialog = require('dialog'); dialog.info(s); } function Date() { const DateTime = require("date-time"); return DateTime(); } module.exports.Print = Print; module.exports.MsgBox = MsgBox; module.exports.Date = Date;
* Print : 引数 s をconsole.logでターミナルに出力します。
* MsgBox : 引数 s をdialog.infoでダイアログボックスに出力します。
* Date : date-timeの戻り値を返却する関数を定義します。
tomtest.js
tomtest.vbを翻訳すると下記のJavaScriptを自動作成することになります。var f = require('./tomdef.js'); f.Print("Hello, world"); // Debug.Print f.MsgBox("Hello, world"); // MsgBox f.Print(f.Date()); // Date()
実行
ターミナルにて以下のコマンドを実行。node tomtest.js
JavaScripの記述内容がそれぞれ実行されています。
まとめ
npmのパッケージを利用して実現したい機能の関数を定義しました。npmには他にもたくさんのすばらしいパッケージが用意されています。
これらのパッケージを流用または拡張して新たな機能を実現することも可能です。
次回は、tmotest.vbをtomtest.jsへ翻訳するJavaScriptを作成します。
コメント
コメントを投稿