カスタム数値書式 [VB]

VB2012-2019

自由な書式編集

カスタム数値書式指定文字列を使えば、自由な書式に編集することができます。

カスタム数値書式は便利な機能なので、よく理解して使えば、とても有効です。

書式は{データ位置,桁数:カスタム書式指定文字列}

データ位置

標準数値書式指定文字列と同様で、複数のデータが指定された場合に、データ位置を特定するために使います。先頭位置は 0 になります。

たとえば、num3とnum4を整数変数とすると、("{0,6:d}{1,5:d}", num3, num4)なら、1番目の{0,6:d}はnum3、2番目の{1,5:d}はnum4の表示方法を示します。

桁数

標準数値書式指定文字列と同様に表示桁数を指定します。表示データが指定桁数より短ければ、空き桁位置は空白になり、実データのほうが長ければ、指定桁数は無視されて、データの桁数が使われます。正整数を指定すると右詰、負整数を指定すると左詰になります。

カスタム書式指定文字列

数値書式指定文字列として、標準数値書式指定文字列と、カスタム書式指定文字列が用意されています。カスタム書式指定文字列を使用すれば、独自の書式で表示することができます。

標準数値書式指定文字列はこちら

カスタム数値書式指定文字列は、書式指定子のアルファベット1文字(大文字でも小文字でも同意)と精度指定子の0~99の組合せで指定します。

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

Module Module1

  Sub Main()
      Dim num1 As Integer = 9876
      Dim num2 As Double = 12.499
      Dim num3 As Double = 12.5

      ' 【ゼロプレースホルダ】書式指定子の部分は0埋め
      ' 書式指定子:0
      ' 01-->____9876
      Console.WriteLine("01-->{0,8:0}",num1)
      ' 桁数が書式指定子より長ければその部分は空白
      ' 02-->__009876  03-->__000012
      Console.WriteLine("02-->{0,8:000000}",num1)
      Console.WriteLine("03-->{0,8:000000}",num2)
      ' 書式指定子に、00を指定すると1未満四捨五入
      ' 04-->______12  05-->______13
      Console.WriteLine("04-->{0,8:00}",num2)
      Console.WriteLine("05-->{0,8:00}",num3)

      ' 【桁プレースホルダ】書式指定子の部分は空白
      ' 書式指定子:#
      ' 06-->____9876
      Console.WriteLine("06-->{0,8:#}",num1)
      ' 桁数が書式指定子より長ければその部分は空白
      ' 07-->____9876
      Console.WriteLine("07-->{0,8:######}",num1)
      ' 書式指定子に ## を指定すると1未満四捨五入
      ' 08-->______12  09-->______13
      Console.WriteLine("08-->{0,8:##}",num2)
      Console.WriteLine("09-->{0,8:##}",num3)

      ' 【小数点】.で小数点の位置が決まる
      ' 書式指定子:.
      ' 10-->____12.5 11-->___12.50 12-->__12.499
      Console.WriteLine("10-->{0,8:##.0}",num2)
      Console.WriteLine("11-->{0,8:##.00}",num2)
      Console.WriteLine("12-->{0,8:##.000}",num2)

      ' 【桁区切り記号】0または #の間に指定
      ' 書式指定子:,
      ' 13-->___9,876  14-->___9,876
      Console.WriteLine("13-->{0,8:0,0}",num1)
      Console.WriteLine("14-->{0,8:#,0}",num1)

      ' 【数値位取り】小数点の左にひとつ以上指定
      ' 書式指定子:,( ,ひとつに付き1000で割った値)
      ' 15-->______30  16-->__30,000
      Dim num4 As Integer = 30000000
      Console.WriteLine("15-->{0,8:0,0,,}",num4)
      Console.WriteLine("16-->{0,8:0,0,}",num4)

      ' 【パーセントプレースホルダ】パーセント値表示
      ' 書式指定子:%(100倍して%を付加)
      ' 17-->___55.5%  18-->__55.50%
      Dim num5 As Double = 0.555
      Console.WriteLine("17-->{0,8:#.##%}",num5)
      Console.WriteLine("18-->{0,8:#.#0%}",num5)
  End Sub

End Module