VBA・VBScript で変数の宣言と初期化を1行で書く方法

よく知られてるけどあまり使われてるのを見たことがないアレ。

VBScript や VBA は行末にセミコロンを打ったりしない。改行までが1つの処理として扱われる。

しかし、実はコロン「:」を打つと、そこまでが1行と見なされ、その後ろに次の処理を書くことができるのだ。

これを応用して、変数の宣言と初期化を1行で書いてしまおうというネタ。

' これは普通に書いた場合
Dim fso
Set fso = CreateObject("Scripting.FileSystemObject")

' 1行で書くとこうなる
Dim fso: Set fso = CreateObject("Scripting.FileSystemObject")

コロンの前後はどうスペースを空けても大丈夫な感じっぽい。

var fso = なんたら みたいな宣言と初期値設定が同時にできない VB 系だが、これで少しソレっぽく見えるかな?

そういえば Const なら Const x As Integer = 10 みたいに書けるし、VB.NET だと Dim x As Integer = 10 って書けるようになってる。やっぱり不便だったんだなぁ。


逆に、1行に書く処理が長くなりすぎて改行を入れたい場合は以下をドウゾ。


全然関係ないけど、こんなページを見付けた。

Microsoft のサイトだけど、ページ最下部にかわいらしいイラストがある。面白いね。おわり。(?)