• ベストアンサー

Excelで小数点の位置でそろえる方法は2?

すみません。前回の質問で半角スペースが勝手に消されてました。全角で表現します。   12.34  123.5678    1.1 という感じです。 よろしく。

質問者が選んだベストアンサー

  • ベストアンサー
  • ja7awu
  • ベストアンサー率62% (292/464)
回答No.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

tiga-
質問者

お礼

ありがとうございます。 整数の場合は、小数点を表示しないようにするにはVBAを使うしかないのですか。 うーん、ちょっと、大変ですね。 ご回答を参考に挑戦してみます。

その他の回答 (3)

noname#9284
noname#9284
回答No.3

セルの書式設定で表示形式を [DBNum3]#,##0.0? にしてみてはいかがでしょうか。 全角で、小数点位置が縦に揃います。

  • zebrabody
  • ベストアンサー率37% (17/45)
回答No.2

最初のご質問の方に記入しましたので、読んでくださいね。ご希望通りの表示が可能ですので。

  • arukamun
  • ベストアンサー率35% (842/2394)
回答No.1

小数点以下を0で埋めて良いのであれば、簡単にできますね。 [書式]→[セル]→[表示形式]で 数値を選んで、小数点以下の桁数を必要な量設定するだけです。 これ以外の方法は 上記小数がA1,A2,A3に入力されて B1に =REPT(" ",10-FIND(".",A1))&A1 をコピペして、B1セルをコピーして、B2、B3にペーストして見てください。 必要に応じて、真ん中あたりの10の数値を増やしたり減らしたりしてください。 尚、これらの方法はプロポーショナルフォントではうまくいきませんので、MS PゴシックとかからMS ゴシックに変更してください。

tiga-
質問者

お礼

ありがとうございます。 試してみましたが、小数点がないとエラーが発生したので次のように改良してみました。 REPT(" ",10-IF(ISERROR(FIND(".",A2)),LEN(A2)+1,FIND(".",A2)))&A2 これも、いい方法ですね。

関連するQ&A