Category

마메의여행기 (252)
사진 (84)
여행 (11)
등산 (30)
정보 (91)
개발 (36)

Search

Blog Menu

[VB6→VB.NET] 문자열 형식 변경(Format)

[VB6]
MsgBox Format(Now, "yyyy/MM/dd")

[VB.NET 자동변환]
MsgBox VB.Format(Now, "yyyy/MM/dd")
※ 경고가 발생함

[VB.NET 사용예]
 MsgBox(Now.ToString("yyyy/MM/dd"))
 MsgBox(Format(Now, "yyyy/MM/dd"))
 MsgBox(Strings.Format(Now, "yyyy/MM/dd"))
× MsgBox(String.Format(Now, "yyyy/MM/dd"))
※ 4번째는 문자열 형식을 배열로 받는 차이가 있음. 또한 값과 형식의 인수위치가 반대임


String.Formatメソッド

Formatメソッドの第一パラメータには、書式を指定します。書式は"{"と "}" で囲んで、{N,桁数:書式}という文字列を使って整形後の文字列を表現します。Nは、データ位置を特定します。書式は複数記述できますので、書式がひとつの時は、例のように、{0,桁数:書式}となります。

桁数のみの時は右詰で、マイナス符号付の桁数の時は、左詰になります。"{"と"}"の前後には、任意の文字列を記述できます。桁数は省略できます。

' ●表示エリア9桁を確保して右詰で表示 
' str = "   12,345" 
Dim str As String 
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関数

Format関数は、文字列を数値に変換しません。

' 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%")