※この記事は新入社員の問いにあることないことないことないこと話した備忘録です。
本日の困りごと
VBScriptって何ぞや?どうやって組むものなの?
経緯
新入社員にVBScriptの糞コードを修正してもらうことになったよ!
…いや、糞コードではあるが、糞コードの修正…というと語弊がある。
やってもらうことは単なるバグフィックスだ。「稼働当時から一切機能していない」プログラムの改修だ。誰だよ作ったヤツ(せめて動作確認してくれ)。。
そして新人ちゃんたちはどうか「イケてないんで、全部修正しますね!」とは言いださないでほしい。
今回の解決方法
久々にggrksって言ったVBScriptについて簡単に説明するよ!
今回の記事にはサンプルコードは用意してないよ!
VBScriptとは何ぞや?
Microsoftの開発したプログラム言語の一つ。
VisualBasicシリーズに名を連ねるScript言語だ。
Script言語とはJavaScript然り、「実行するのに面倒な作業が要らない」言語である。
実行するのに面倒な作業が要らないということは、
コンパイルして(エラーが出て)ビルドして(エラーが出て)実行して(エラーが出る)…という手順を踏まなくても大丈夫。
病める時(上手く動かない時)も健やかなる時も、すぐに結果が返ってくる親切設計だ。
Microsoftのプログラム言語なので、Excel操作やAccess操作を自動化することに優れている。Accessでクエリやマクロを動かしてExcelにデータをエクスポートするとかね。
え?PythonやRPAツールは使わないのか?
色々と理由はあるけど…一番の理由は作ったの10年前だからじゃないかな。
VBScriptは何で開発する?
特別必要なものは何もない。お気に入りのテキストエディタさえあればOK。
強いて言うなら…
そのテキストエディタは文字コードを「ANSI」に設定できますか?ということだろうか。とはいえ、これはWindows標準装備のメモ帳でも問題がない。
VBScriptだけでなく、プログラム言語には利用できる文字コードと利用できない文字コードがあるとだけ覚えていてほしい。
日本語(マルチバイト文字列)を利用するなら、この文字コードは必須だと思っていてほしい。
私はごたぶんに漏れずVSCODEを利用している。
シンタックスハイライトだけであればサクラエディタも優秀なのだが、
コードの自動補完をされてしまうと、もう元に戻ることはできない…
大昔、Eclipseが解禁された後(新人は研修中使ってはいけないルールだった) 、Javaのコンパイルもmainメソッドもできなくなったあの頃に似ている。mainメソッド、今も書ける気はしないけど。
メモ帳を開いて、実行したい処理を書く。そのファイルを拡張子.vbs
で保存すれば完成だ。
わー。言うのはめちゃくちゃ簡単ー☆
VBScriptを動かそう!
VBScriptを作るにはメモ帳があれば充分…と言った。では実行環境はどうだろう?
VBSファイルを実行するにはそのファイルをダブルクリックするだけでOKだ。
訳あってコマンドプロンプトから実行したい場合はcscript
を利用する。
cscript sample.vbs
え?wscript
っていうのを見たんですけど?
…それは幻じゃないかな。
wscript
で実行すると対話型と言って、出力させたい内容がダイアログボックス(ポップアップ)で返ってくる。
正直サンプルコードを実行するぐらいで、実際の仕事の中で使ったことはあまりない。
コマンドプロンプトから実行したい場合はバッチ化して複数のスクリプトを連続操作したいとかいう要件が多いんじゃないかな?と思う。
詳細な違いは以下のサイトが詳しい。
cscript と wscript の違い | 文字の出力方式
さいごに
…最後に…と言っても何も書くことはないのだが…
私が新人の時に受けた研修は、親ライオンが子ライオンを千尋の谷に突き落とすスタイルだったので、全くの新人に何かを教えないといけない時は何を教えりゃいいのか、毎回とても困っている。
自分に聞かれるまで進んで教えないというスタイルも親ライオン当時の上司の姿を忠実に再現しているので、どうか今の上司は「教えてやれよwww」と突っ込まず、生温かい目で見ていてほしい。