プロが教える店舗&オフィスのセキュリティ対策術

excelで小数点が0で終わる数字を打ち込むと消えますよね。それを残す方法はありますか?
ただし、途中で小数点の桁などが変わる数値を扱うので、小数点以下の桁数で調整するやり方は使えません。表示形式を文字列にするのもあまりしたくないです。

質問者からの補足コメント

  • 例えば測定値が
    0.174
    4.620
    6.74 ←ここで桁が変わる
    9.60
    といった場合、小数点以下の桁数を3桁にすると、6.74が6.740と余分に有効数字が増えてしまいます。

    No.3の回答に寄せられた補足コメントです。 補足日時:2019/06/18 02:16
  • セルに入力した数字の桁数を取得し、表示形式の桁数をそれに合わせるようなマクロはありますか?

      補足日時:2019/06/18 02:22

A 回答 (6件)

No.3の回答者です。



マクロで対応するとなると、入力するセルが[文字列]であることが
前提です。
そうでないと、取得できる値から0が消えるので。
とりあえず、イベントマクロを作ってみました。
A列を対象にしています。

Private Sub Worksheet_Change(ByVal Target As Range)

Dim i As Integer
Dim s As String

 If Intersect(Target, Range("A:A")) Is Nothing Then
  Exit Sub
 Else
  i = Len(Mid(Target.Value, InStr(Target.Value, ".") + 1))
  s = String(i, "0")
  s = "0." & s
  Target.Value = Val(Target.Value)
  Target.NumberFormatLocal = s
 End If

End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

 If Intersect(Target, Range("A:A")) Is Nothing Then
  Exit Sub
 Else
  Target.NumberFormatLocal = "@"
 End If

End Sub

セルを選択すると、[文字列]となります。
値を入れて、[ Enter ]キーで有効桁数の数値になります。
値を入れないで、クリックして[ Enter ]キーだけだと[文字列]の
ままなので、[ F2 ]キーなどで編集状態にして移動してください。

このマクロだと、それぞれのセルで書式設定が違うので、シート内
の書式が多くなります。
データが多くなる場合は、有効桁数を指定する列を作って、それを
もとに条件付き書式を設定したほうが良いと思いますよ。
    • good
    • 0
この回答へのお礼

やはり文字列しかないようですね。わざわざマクロまで書いていただいてありがとうございます。

お礼日時:2019/06/18 17:53

>表示形式を文字列にするのもあまりしたくないです


最初に、結論から言わせていただくと、それは書式文字列にしなければ、無理だと思います。

No. 2番様の
>書式でユーザ設定で0.00とか0.000にすれば良いかなと思うけど……
そのつど、ユーザーフォームを利用して、書式でマクロで替えるということは可能です。私の知っている範囲ですと、1セルに最後に入力したキーが「、小数点末尾の「0」であるというのは、一般的には取れないはずです。ユーザーフォーのテキストボックスなら可能です。

それと、気になるのが、1バッチのデータの出力の有効桁数が、そのつど変わるということが、データとしてありえるのでしょうか。

4.620
4.62
この違いを数理的に区別が可能なのでしょうか。
もし、記録だけなら、他のメモ帳やMS-Wordにさせたほうが無難だと思います。
    • good
    • 0
この回答へのお礼

実験で電圧計など使うのですが、レンジごとに精度が変わるので有効桁数も変わるといった感じですね。末尾の文字で書式を変えるやり方はいいかもしれないですね

お礼日時:2019/06/18 17:58

No.3の回答者です。


書き忘れていましたが、イベントマクロは入力オンリーです。
複数範囲を選択して値を削除するとエラーになります。
(エラー処理をしていないため)
個々で値を消すと0となり、「0.」が表示されたままになります。
これを残さないようにしたいなら、適宜修正してください。
    • good
    • 0

よくわかりませんが、こういうこと?



[セルの書式設定]の[ユーザー定義]で
 0.00########
とする。
(有効桁は適宜増やしてください)

単純に
 0.00
と指定すると小数点以下の桁数が増えたときに表示されないので、
その後ろに#を追加して対応しています。
小数点以下がない場合でも、小数点以下に.00が付きます。
「excelの小数点の数字を残す方法」の回答画像3
この回答への補足あり
    • good
    • 0

書式でユーザ設定で0.00とか0.000にすれば良いかなと思うけど、違いますか?

    • good
    • 0

> 小数点以下の桁数で調整するやり方は使えません。


ならば、出来ません。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!