はじめに
ひと月前ほどから仕事でVisualBasic(2015)を使い始めたので、その時にVisualBasic特有(?)で困った事など、超初心者用のメモです。VisualBasicとは関係なくVisualStudio全般の話も混じってるかもしれませんが、ご容赦下さい。
参考までに、これまで経験してきた言語としてはC/C++/Java(Android)です。学生時代(遠い昔ですが・・・)に.NETになる以前のVBを触った事も少しありました。
Intellisense(入力候補)の決定は「Tab」
これ、つい「Enter」で決定したくなるのですが、「Enter」で候補を決定してしまうと文字はきちんと入力されるので良いのですが、直後に改行されてしまいます。「Tab」で決定すれば改行されずに入力候補の決定ができると気が付くまで非常に不便でした。まぁ設定で変えられそうですけどね。
AndやOrは基本的には使わない
普通に考えたらAnd
やOr
を使って条件式を書くと、式の途中で確定した場合は後続する式を評価しないものだと思ってしまいがちですが、And
やOr
では全ての式を評価してしまうようです。AndAlso
やOrElse
を使う事で全ての式を評価しないようにできるので、特別な理由がない限りAndAlso
やOrElse
を使いましょう。これは過去のVBとの互換性のためでしょうか?
Stopが予約語
Enumの値にStop
を使用しようとしたら怒られる。なんでだろうと思ったら予約語にStop
が。結構一般的な名前だからこれは困るんじゃないの?と思ったけど、「エスケープ識別子」ってやつで定義できるようになるらしい。
Public Enum type
Hoge
Fuga
[Stop]
End Enum
みたいな感じで角カッコで括ってやるといいらしいです。
SelectCaseマジ有能
SelectCaseとは、いわゆるSwitchCaseのようなものという認識なのですが、VisualBasicでは以下のような書き方もできるようなのです。
Select Case True
Case func1()
' 処理1
Case func2()
' 処理2
Case func3()
' 処理3
End Select
おわかり頂けるでしょうか。通常のSwitchCaseでは式を書くべき場所にTrue
という値が入っていて、逆に後に続くCase
では通常値を書くべきですが、式が書かれています。すなわち通常のSwitchCaseと式と値が逆に書けるようなのです。私にはこの発想自体が全然なくて、こうやって書ける事を知った時には衝撃でした。
最後に
VisualBasicを1ヶ月触ってみて、最初は変数宣言する時の
Dim hoge as Integer
って書き方がすごい面倒だなとか、波括弧{}
無いのが不便だなとか、何でわざわざfunction
とSub
を使い分けなきゃいけないの?とか、もうクソ言語が!って感じだったのですが、恐らく私がクソなだけだっただけで言語自体はとても良い言語なのでは無いかと思います。私も仕事でVBを扱う事が無かったら、もう一生機会がなかったかもしれませんが、良い経験させてもらいました。今VBやるならC#やるよ、なんて言わず、皆さんも是非VB使ってみて下さい!