Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


70857 / 76738 ←次へ | 前へ→

【10383】Re:テキストボックスの表示桁数の指定
回答  Seraph  - 04/1/22(木) 14:51 -

引用なし
パスワード
   ▼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

0 hits

【10377】テキストボックスの表示桁数の指定 miya 04/1/21(水) 19:57 質問
【10378】Re:テキストボックスの表示桁数の指定 Seraph 04/1/21(水) 20:47 回答
【10381】Re:テキストボックスの表示桁数の指定 miya 04/1/22(木) 13:52 質問
【10383】Re:テキストボックスの表示桁数の指定 Seraph 04/1/22(木) 14:51 回答
【10384】Re:テキストボックスの表示桁数の指定 miya 04/1/22(木) 15:26 お礼

70857 / 76738 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free