String.Formatメソッド
Stringクラスには、文字列操作のメソッドが数多くあり、たいへん便利です。ここでは、Formatメソッドを紹介します。
Formatメソッドの第一パラメータには、書式を指定します。書式は、{N,桁数:書式}という文字列を使って整形後の文字列を表現します。Nは、データ位置を特定します。書式は複数記述できます。書式がひとつの時は、たとえば、{0,桁数:書式}となります。
桁数のみを指定した時は右詰で、マイナス符号付の桁数の時は、左詰になります。桁数は省略できます。
Dim str As String ' ●表示エリア9桁を確保して右詰で表示 ' str = " 12,345" str = String.Format("{0,9:#,##0}", 12345) ' str = "右詰9桁表示: 12,345" str = String.Format("右詰9桁表示:{0,9:#,##0}", 12345) ' ●表示エリア9桁を確保して左詰で表示 ' str = "12,345 " str = String.Format("{0,-9:#,##0}", 12345) ' ●表示エリア桁数を省略した場合 ' str = "12,345" str = String.Format("{0:#,##0}", 12345)
複数書式の時は、順に{0,桁数:書式}、{1,桁数:書式}、{2,桁数:書式}、~、{N,桁数:書式}というように記述します。
> ' ●"{"と"}"の前後に任意の文字列を記述し、複数の書式を指定して表示 ' str = "1番目:12,345、2番目: 13%" Dim i As Integer = 12345 Dim d2 As Double = 0.125
str = String.Format("1番目:{0,5:#,##0}、2番目:{1,4:#0%}", i, d2)
Format関数
#,##0 と #0% の例を紹介します。数値を丸めると、四捨五入になります。文字列は数値に変換する必要があります。
' str = "#,##0" Dim str As String str = Format("12345", "#,##0") ' "12345"を数値に変換する必要があります。 ' 実行結果:str = "12,345" str = Format(CInt("12345"), "#,##0")
' 実行結果:str = "1,235" str = Format(1234.5, "#,##0") ' 実行結果:str = "13%" Dim d1 As Double = 0.125 str = Format(d1, "#0%")