書式設定(フォーマット)に関する関数等の使用例 (10個) (SNo.008) Format 書式指定文字列式に含まれる指示に従って書式設定された文字列を返します FormatCurrency コントロールパネルで定義されている通貨記号を使って文字列に書式設定して返す。 FormatDateTime 日時の値を表す文字列式を返します。 FormatNumber 数値形式の文字列に書式設定して返す文字列処理関数です。 FormatPercent パーセント記号 (%) が付加されたパーセント形式 (100 で乗算した) の文字列に書式設定 PadLeft 指定した文字列の文字数になるまで左側に空白または指定した文字を埋め込みます PadRight 指定した文字列の文字数になるまで、指定した Unicode 文字または空白を右側に埋め込みます String.Format 指定した String の書式項目を、指定した Object インスタンスの値と等価のテキストに置換する ToString このインスタンスの数値を、それと等価な文字列形式に変換します。 Double.Parse 数値の文字列形式を倍精度浮動小数点数に変換(3桁区切り等の書式設定を取り除く) |
|
使用コントロール | Button1 〜 Button10 |
その他条件 | WindowsXP(Vista) Visual Basic 2005(VB2008) |
★ Format 関数 Private Sub Button1_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Button1.Click 'Format 関数 [名前空間 : Microsoft.VisualBasic] '書式指定文字列 (String) 式に含まれる指示に従って書式設定された文字列を返します。 Debug.WriteLine(Microsoft.VisualBasic.Format(1234.5, "###.#0")) '結果 1234.50 Debug.WriteLine(Microsoft.VisualBasic.Format(1234.5, "Standard")) '結果 1,234.50 'この他 VB6.0 同様色々の書式が設定できますので詳しくはヘルプ参照 End Sub |
|
★ FormatCurrency 関数
Private Sub Button2_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Button2.Click 'FormatCurrency 関数 [名前空間 : Microsoft.VisualBasic] 'システムの [コントロール パネル] で定義されている通貨記号を使って '通貨形式の文字列に書式設定して返す文字列処理関数です。 Dim myDebt As Double = -123456.7 Debug.WriteLine(Microsoft.VisualBasic.FormatCurrency(myDebt, 2, _ TriState.True, TriState.UseDefault, TriState.UseDefault)) '結果 -\123,456.70 Debug.WriteLine(Microsoft.VisualBasic.FormatCurrency(myDebt, 2, _ TriState.False, TriState.True, TriState.False)) '結果 (\123456.70) End Sub |
|
★ FormatDateTime メソッド Private Sub Button3_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Button3.Click 'FormatDateTime 関数 [名前空間 : Microsoft.VisualBasic] '日時の値を表す文字列式を返します。 Debug.WriteLine(Microsoft.VisualBasic.FormatDateTime( _ DateTime.Now, DateFormat.GeneralDate)) '結果 2005/08/31 20:26:12 Debug.WriteLine(Microsoft.VisualBasic.FormatDateTime( _ DateTime.Now, DateFormat.LongDate)) '結果 2005年8月31日 Debug.WriteLine(Microsoft.VisualBasic.FormatDateTime( _ DateTime.Now, DateFormat.ShortDate)) '結果 2005/08/31 Debug.WriteLine(Microsoft.VisualBasic.FormatDateTime( _ DateTime.Now, DateFormat.LongTime)) '結果 20:26:13 Debug.WriteLine(Microsoft.VisualBasic.FormatDateTime( _ DateTime.Now, DateFormat.ShortTime)) '結果 20:26 Debug.WriteLine(DateTime.Now) '結果 2005/08/31 20:26:13 End Sub |
|
★ FormatNumber 関数 Private Sub Button4_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Button4.Click 'FormatNumber 関数 [名前空間 : Microsoft.VisualBasic] '数値形式の文字列に書式設定して返す文字列処理関数です。 Dim myDebt As Double = -123456.7 Debug.WriteLine(Microsoft.VisualBasic.FormatNumber(myDebt, 2, _ TriState.True, TriState.UseDefault, TriState.UseDefault)) '結果 -123,456.70 Debug.WriteLine(Microsoft.VisualBasic.FormatNumber(myDebt, 2, _ TriState.False, TriState.True, TriState.False)) '結果 (123456.70) End Sub |
|
★ FormatPercent 関数 Private Sub Button5_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Button5.Click 'FormatPercent 関数 [名前空間 : Microsoft.VisualBasic] 'パーセント記号 (%) が付加されたパーセント形式 (100 で乗算した) の '文字列に書式設定して返す文字列処理関数です。 Dim myDebt As Double = 0.5675 Debug.WriteLine(Microsoft.VisualBasic.FormatPercent(myDebt, 2, _ TriState.True, TriState.True, TriState.True)) '結果 56.75% Debug.WriteLine(Microsoft.VisualBasic.FormatPercent(myDebt, 1, _ TriState.False, TriState.False, TriState.False)) '結果 56.8% End Sub |
|
★ String.PadLeft メソッド Private Sub Button6_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Button6.Click 'String.PadLeft メソッド [名前空間 : System] 'このインスタンス内の文字を右寄せし、指定した文字列の文字数になるまで '左側に空白または指定した Unicode 文字を埋め込みます。 Dim str1 As String = "ABCD" Dim str2 As String = "1234" Debug.WriteLine("[" & str1.PadLeft(10) & "]") '結果 [ ABCD] Debug.WriteLine(str2.PadLeft(10, "0")) '結果 0000001234 End Sub |
|
★ String.PadRight メソッド Private Sub Button7_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Button7.Click 'String.PadRight メソッド [名前空間 : System] 'この文字列の文字を左寄せし、指定した文字列の文字数になるまで '指定した Unicode 文字または空白を右側に埋め込みます。 Dim str1 As String = "ABCD" Dim str2 As String = "1234" Debug.WriteLine("[" & str1.PadRight(10) & "]") '結果 [ABCD ] Debug.WriteLine(str2.PadRight(10, "0")) '結果 1234000000 End Sub |
|
★ String.Format メソッド
Private Sub Button8_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Button8.Click 'String.Format メソッド [名前空間 : System] '指定した String の書式項目を、指定した Object 'インスタンスの値と等価のテキストに置換します。 '先頭および末尾の中かっこ文字 '{' および '}' は必須です。 Debug.WriteLine(String.Format("{0:#,###.0}", 1234.23)) '結果 1,234.2 Debug.WriteLine(String.Format("{0:0,0.0}", 1234.23)) '結果 1,234.2 Debug.WriteLine(String.Format("\{0:0,0}", 1234.23)) '結果 \1,234 Debug.WriteLine(String.Format("合 計 = \{0:#,###} 円です", 1234.23)) '結果 合 計 = \1,234 円です Debug.WriteLine(String.Format("{0:0000}", 12)) '結果 0012 Debug.WriteLine(String.Format("{0:0.00%}", 0.2345)) '結果 23.45% Debug.WriteLine(String.Format("#,###.0", 1234.23)) '結果 #,###.0 と表示される ' Debug.WriteLine(String.Format("{#,###.0}", 1234.23)) '結果 エラーが発生 Debug.WriteLine(String.Format("今日は、{0}月{1}日で{2}曜日です。", "5", "15", "土")) '結果 今日は、5月15日で土曜日です。 '表示領域12桁で右詰で表示 Debug.WriteLine(String.Format("{0,12:#,##0.00}", 1234.2)) '結果= 1,234.20 Debug.WriteLine(String.Format("合計 : {0,12:#,##0.00}", 1234.2)) '結果=合計 : 1,234.20 '複数のデータを表示する Debug.WriteLine(String.Format("小計={0,5:#,##0} 合計={1,5:#,##0} 総合計={2,5:#,##0}" _ , 1230, 4560, 5790)) '結果=小計=1,230 合計=4,560 総合計=5,790 End Sub |
|
★ ToString メソッド このインスタンスの数値を、それと等価な文字列形式に変換します。 Private Sub Button9_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Button9.Click 'ToString メソッド [名前空間 : System] 'このインスタンスの数値を、それと等価な文字列形式に変換します。 Dim nd As Double nd = 12345.6 Debug.WriteLine(nd.ToString("C")) '結果 \12,346 nd = 0.678 Debug.WriteLine(nd.ToString("P")) '結果 67.80% End Sub 上記以外の書式指定文字や使用法はMSDNの下記を調べて下さい。 |
|
★ 3桁区切り等の書式を取り除く
Private Sub Button10_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Button10.Click 'Double.Parse メソッド [名前空間 : System] '数値の文字列形式を、それと等価な倍精度浮動小数点数に変換します。 '3桁区切り等の書式を取り除く Dim s As String = "12,345,678.78" Debug.WriteLine(Double.Parse(s, Globalization.NumberStyles.Number)) '結果 12345678.78 '又は Debug.WriteLine(CDbl(s)) '結果 12345678.78 '下記ではだめです。 Debug.WriteLine(Val(s)) '結果 12 End Sub |
|