VBAでは変数名に日本語を使うことができるので、以下のようなコードを書くことが出来ます。
Dim 名前 As String
名前 = InputBox("名前を入力して下さい")
一方でVBScriptでは変数名に日本語を使うことは許されておらず、以下のコードはエラーになります。
のっぴきならない事情により、VBScriptでも変数名に日本語を使いたい時にはどうしたらいいでしょうか?
Dim 名前
名前 = InputBox("名前を入力して下さい")
解決策
変数名を[]
で囲む。
なんと!変数名を[]で囲むことによってその中に日本語を書くことができるようになります。
Dim [名前]
[名前] = InputBox("名前を入力して下さい")
この機能は公式ドキュメントにも書かれていない隠し機能ですが、確かに動作します。
更に以下のブログ記事によると、ほぼすべての文字が使えるようなので、変数名を好き勝手につけ放題です。
空白や記号を含んでいても、予約語だろうが変数名にすることが出来ます。
あまりにもアレ気な仕様なので、Qiitaのシンタックスハイライトがバグってますが、実行してみるとエラーは出ません。
VBScript Trivia: Bracket Identifiers and Reserved Word Incompatibilities
Dim [with space], [symbol!"#$], [If]
また、変数名だけでなく、任意の識別子に対してこの記法が使えるため、[While]
関数や、[End]
メソッドを作ることだって出来ます。