|
▼miya さん:
あまりエレガントではないかもしれませんが、、、
少数以下が有るか無いかを判定して、Format関数を別々に呼出すと言うのは
どうでしょう?
このコードを
> myC.Value = Format(Cells(myC.Tag, 1), "#0.##")
こんなカンジにしてみる、、、
If Cells(myC.Tag, 1) = Fix(Cells(myC.Tag, 1)) Then
myC.Value = Format(Cells(myC.Tag, 1), "#0.##")
Else
myC.Value = Format(Cells(myC.Tag, 1), "#0")
'または myC.Value = CStr(Cells(myC.Tag, 1))
End If
>セルの値が整数「10」の場合、テキストボックスに表示される値が
>「 10. 」と小数点が表示してしまいます。
>整数はそのままで、小数点がある場合は
>下2桁までの表示にしたいのですが
>どうすればよいでしょうか?
セル参照のコードが冗長になって気になる場合は、変数に取ってもいいと思います。
#好みや、Single型の使用が許されるかで色々でしょうが、、、
#こんなカンジにも書けます。
Dim myC As Control
Dim bPoint As Boolean
Dim sglCellValue As Single
For Each myC In Controls
'Tagに設定値があれば
If myC.Tag <> "" Then
'セルの値をとる
sglCellValue = CSng(Val(Cells(myC.Tag, 1)))
'小数点以下があるか判定
bPoint = sglCellValue <> Fix(sglCellValue)
'整形して表示
myC.Value = Format(Cells(myC.Tag, 1), IIf(bPoint, "#0.##", "#0"))
End If
Next
|
|