- ベストアンサー
エクセルの表計算の書式記号で
小数点の位置の桁ぞろえの際 [0.???]の方法を使用していますが、 整数を入力する場合、ex. 1を入力すると、表示に 1. と 1 の横にコンマがついてしまいます。 このコンマが表示されないようにする方法を教えていただきたいのですが? よろしくお願いいたします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
書式の切り分けは、書式設定だけでは難しいと思います。 ●計算結果等を表示する場合の方法 直接入力した値ではなく、計算した値を別セルで表示する場合です。 例えば、B2に入力または計算された値をC2で表示します。C2には =IF(B2-INT(B2)=0,TEXT(B2,"# "),TEXT(B2,"0.???")) 整数部分は1桁です。整数部分が2桁以上ならRight関数で対応できます。 回答すると半角スペースの個数が変わります。"# "は#の次に半角スペース4個です ●入力値を直接表示する場合 セルに入力した値をそのセルで表示形式を切り替える方法。 ・・・通常の書式設定、条件付書式では困難なようです。マクロを考えてみました。 下の例は、指定した列に入力を行うと、質問にある書式で表示します。 マクロ使用なので根本的な解決方法ではないかもしれません。参考に回答します。 Sheet1で行う例です。 ツール→マクロ→Visual Basic Editoe でVBE画面に移り、表示→プロジェクトエクスプローラで プロジェクトエクスプローラを出して、Sheet1をダブルクリック、出てきたコードウインドウに 下記コードを貼り付けます。 入力する列を『inpColumn』に、整数部分の最大桁数を『KetaSuu』に設定します。 終わったら、シートにかえり入力します。 Const inpColumn = "B" 'B列に入力した数値の書式を切り替える Const KetaSuu = 2 '整数部分の最大桁数 Private Sub Worksheet_Change(ByVal Target As Range) On Error GoTo ErrorHandler '入力ミスした場合 If Target.Column = Range(inpColumn & "1").Column Then '設定した列(inpColumn)に入力した場合 If Target.Count = 1 Then '単一セルの操作に限る If Target.Value - Int(Target.Value) <> 0 Then '小数部がある時の書式 Target.NumberFormatLocal = Right(Space(KetaSuu) & "0.???", KetaSuu + 4) Else '整数の場合の書式 '回答すると半角スペースの個数が変わります。"0 "は0の次に半角スペース4個です Target.NumberFormatLocal = Right(Space(KetaSuu) & "0 ", KetaSuu + 4) End If End If End If Exit Sub ErrorHandler: '入力エラーの時はメッセージを出す MsgBox "入力エラーです" End Sub
その他の回答 (1)
- Naodon1020
- ベストアンサー率25% (243/949)
1.000と表示させたいなら、 書式は、 0.000 にすればいいんじゃないでしょうか?
補足
ご回答ありがとうございます。 ~私の表現不足がありました。申しわけありません。 [1.000]と表示させたいのではなくて 1を入力したら、[1]のみ表示で、コンマ以下の表示はなくしたいのですが…
お礼
なんてキレイな書式表現なのでしょう! ご回答ありがとうございました。 ただ、私の初歩的な技術ではできそうにありません。 「Right関数」??で、一時思考がストップしてしまったくらいですから… この「ご回答」がいつか理解できる日を夢見て、大事に保管し、少しづつ勉強してゆきたいと思います。