- ベストアンサー
Excelで小数点の位置でそろえる方法は2?
すみません。前回の質問で半角スペースが勝手に消されてました。全角で表現します。 12.34 123.5678 1.1 という感じです。 よろしく。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
この件は、整数のときでも「少数点」を表示してもいいか、それとも表示したくないのか で回答が変わってくるかと思います。 勿論、数値を表示しているセルそのものの表示のこととします。 前者は、書式をユーザー定義で #,##0.??? とすれば可能ですが、整数の場合は、 123. のようになってしまうと思います。 整数の場合 少数点を表示せず、しかも桁をキチット揃えるには、 VBAを使わないと出来ないかと思います。 (Excel2000) 但し、文字列で処理しますので、この値を参照して計算式を設定している場合は、 Value関数で数値に変換する必要があります。 これで宜しかったら、標準モジュールに下記コードを貼り付けて、範囲を指定後 Alt+F8でこのマクロを実行してみてください。 Sub 数値桁揃え3() '指定セル範囲を少数3桁で位置を揃えて表示。整数は少数点無し Dim R As Range Selection.Font.Name = "MS ゴシック" Selection.NumberFormatLocal = "@" Selection.HorizontalAlignment = xlRight For Each R In Selection If IsNumeric(R) And Not IsEmpty(R) Then R.Value = Fix(R.Value * 1000) / 1000 If R.Value - Int(R.Value) = 0 Then '整数 R.Value = Format(Trim(Val(R.Value)), "#,##0") & Space(4) ElseIf R.Value * 10 - Int(R.Value * 10) = 0 Then R.Value = Format(Trim(R.Value), "#,##0.0" & Space(2)) ElseIf R.Value * 100 - Int(R.Value * 100) = 0 Then R.Value = Format(Trim(R.Value), "#,##0.00 ") Else R.Value = Format(Trim(R.Value), "#,##0.000") End If End If Next R End Sub
その他の回答 (3)
セルの書式設定で表示形式を [DBNum3]#,##0.0? にしてみてはいかがでしょうか。 全角で、小数点位置が縦に揃います。
- zebrabody
- ベストアンサー率37% (17/45)
最初のご質問の方に記入しましたので、読んでくださいね。ご希望通りの表示が可能ですので。
- arukamun
- ベストアンサー率35% (842/2394)
小数点以下を0で埋めて良いのであれば、簡単にできますね。 [書式]→[セル]→[表示形式]で 数値を選んで、小数点以下の桁数を必要な量設定するだけです。 これ以外の方法は 上記小数がA1,A2,A3に入力されて B1に =REPT(" ",10-FIND(".",A1))&A1 をコピペして、B1セルをコピーして、B2、B3にペーストして見てください。 必要に応じて、真ん中あたりの10の数値を増やしたり減らしたりしてください。 尚、これらの方法はプロポーショナルフォントではうまくいきませんので、MS PゴシックとかからMS ゴシックに変更してください。
お礼
ありがとうございます。 試してみましたが、小数点がないとエラーが発生したので次のように改良してみました。 REPT(" ",10-IF(ISERROR(FIND(".",A2)),LEN(A2)+1,FIND(".",A2)))&A2 これも、いい方法ですね。
お礼
ありがとうございます。 整数の場合は、小数点を表示しないようにするにはVBAを使うしかないのですか。 うーん、ちょっと、大変ですね。 ご回答を参考に挑戦してみます。