ラベルに数値を表示するときに桁区切りをしたいのですが、どのような
ソースを書けばよいのでしょうか??
テキストボックスにもとの数値が入っているとして、以下のソースで
いかがでしょう。
Private Sub Label1_Click()
t = Text1.Text
If IsNumeric(t) Then
k = InStr(t, ".")
If k > 0 Then '小数点以下を分離しておく
t1 = Left(t, k - 1)
t2 = Right(t, Len(t) - k + 1)
Else
t1 = t
t2 = ""
End If
k = Log10(t) \ 3
For i = k To 1 Step -1
t1 = Left(t1, Len(t1) - i * 3) + "," + Right(t1, i * 3)
Next
Label1.Caption = t1 + t2
End If
End Sub
Function Log10(x) As Integer
Log10 = CInt(Log(x) / Log(10))
End Function
formatnumberって関数でもいけます。
MSDNのFornat関数の数量指定子のページに、そういう風にするための文字が書いてあったような気がします。
Format関数自体、結局わからなかったので、あんまり使ってませんけど。
桁区切りなら、こんな感じで良いと思いますが・・・
Label1.Caption = Format(Text1.Text, "#,#")
MaskEditコントロールを使えば、
デザイン時にプロパティページで書式設定しておいて、
あとはただ代入するだけですみます。
ツイート | ![]() |