VBAでは、半角スペースに続けてアンダーバーを書くことでステートメントの途中で改行することができる。
実は昔、この途中改行が嫌いだった。理由は単に自分が途中改行されたコードに慣れてなかっただけで、慣れてからガンガン使うようになっている。
たとえば変数宣言。以下のように2行で書くのが主流だ。
Dim SampleCollection As Collection Set SampleCollection = New Collection
私の場合はちょっと前までこのように1行で書いていて、
Dim SampleCollection As Collection: Set SampleCollection = New Collection
最近はこんな感じのコードも増えてきた。
Dim SampleCollection As Collection: Set SampleCollection _ = New Collection
ほんとはVB.Netみたいに
Dim SampleCollection As New Collection
とか、
Dim SampleInteger As Integer = 10
という風に書きたいんだけど、VBAの場合は変数宣言と同時にNewすると挙動が変わる問題もあるし、後者のIntegerについてはそもそもそのように書けない。
thom.hateblo.jp
Collection型で宣言してるのでCollection型のインスタンスを入れるのは明白。にもかかわらず改めてSetでNew Collectionと書かなければならない。変数名も型名も2回ずつ書く必要があるので、くどい。
ということで、右半分は無視することにした。
…てのは冗談で、元々は「はてなブログ対策」で考えた記法。
はてなブログには「はてなスーパープレ記法※」という便利な機能があって、>|言語|と||<で括るとその言語のコードを色分けしてくれる。
※ブログの基本設定から編集モードをはてな記法モードにしておく必要あり。
さて、便利なんだけど、コードの場合は文字の折り返しが効かず(それがpreなので)、こんな感じで少し長いコードははみ出してしまう。
いろいろ試してみたけど結局うまくいかないので、あきらめてそもそも一行があまり長くならないようにコーディングするようになった。
(最近はあまり意識できてないけど。)
でもやってみたらこういう風に読めなくもないので、個人的にはアリかなと思っている。
↓以下のコードでよく使っている。
thom.hateblo.jp
まぁこんな書き方で「イイね」と思ってるのはひょっとすると全国で私だけかもしれないけど、私は職業プログラマーでない限りコードの書き方は自由だ(そして自己責任だ)と考えてる※ので、「こんなコードはけしからん」などと思っても所詮アマチュアの戯言だと思っていただければ。
※詳細は以下をご参照ください。
thom.hateblo.jp