継続行の書き方 [VB]

行末にアンダースコア

コメントの書き方
文字列の改行
プログラムを次行に継続する
Const 定数の宣言
型文字 $ % & ! # @
標準数値書式
カスタム数値書式
Option Strict On
ビルドエラーの修正

1行が長くなるときは、行末にアンダースコア(_)を使って、複数行に分けて書くことができます。

アンダースコア(_)の前には、半角のスペース(空白)がひとつ必要です。アンダースコアは、アンダーライン、アンダーバーとも言われ、略してアンスコと言う人もいます。

VB2010以降では、カンマ(,)の後などで、行継続文字を省略できるようになりました。

継続行は見やすく書く

継続行はタブ1つ分インデント(字下げ)することが多いようですが、見やすく書くことが大切です。

次の例は、Math.Round関数 を使って四捨五入するプログラムです。内容は分からなくても、行継続文字の使い方がわかれば十分です。わざと複数行で書きました。

このような長さなら1行で書きます。ほんとうに1行が長くなるときだけに、行継続文字を使ってください。通常は次のように1行で書きます。

ソースリストの枠内をクリックすると全選択できます。

  ' Math.Roundを使って四捨五入
  ans = Math.Round(inNum, 0, MidpointRounding.AwayFromZero)
Module Module1

  ' 変数の宣言
  Dim inNum As Double
  Dim ans As Double

  inNum = 11.49999

  ' Math.Roundを使って四捨五入
  ' 1行で書けるところを _ を使ってわざわざ複数行で記述
  ans = Math.Round(inNum, _
                   0, _
                   MidpointRounding.AwayFromZero)

  Console.WriteLine(ans)

End Module

【注意】超やさしい VB 文法では、通常1行で書くケースでも、横スクロールを避けるために、複数行で書くことがあります。

アンダースコアを省略

上のプログラムでは _ を省略して記述することができます。

Module Module1

  ' 変数の宣言
  Dim inNum As Double
  Dim ans As Double

  inNum = 11.49999

  ' Math.Roundを使って四捨五入
  ' 1行で書けるところを _ を使わずに複数行で記述
  ans = Math.Round(inNum,
                   0,
                   MidpointRounding.AwayFromZero)

  Console.WriteLine(ans)

End Module

その他に、 左かっこ"("の後、右かっこ")"の前、等号"=" の後などで省略可能です。エラーにならなければ省略可能です。

どこでもアンダースコアなしで改行できるわけでもないので、不安があるときは、アンダースコアを書きましょう。