• ベストアンサー

エクセルでセルの書式のユーザー定義で

1000と入れたら1,000万円と表示させるには #,###"万円"だと思いますが、こうやると753.5と入れると754万円になってしまいます。 #,###.#"万円"としたらいいかと思いましたら、今度は小数がない753の場合でも、753.万円と.が残ってしまいます。 整数なら小数点がでなくて、小数をいれたらちゃんと表示されるようにするには書式をどう設定すればいいのでしょうか?

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

  • ベストアンサー
回答No.6

簡単な方法 指定範囲のセルに定義で名前を付けます。 仮に「指定範囲」という名前の場合 Private Sub Worksheet_Change(ByVal Target As Range) Set Target = Application.Intersect(Range("指定範囲"), Target) If Target Is Nothing Then Exit Sub ' 指定範囲外を無視する If Target.Count > 2 Then Exit Sub ' 複数セル変更(クリア等)無視 If Target <> Int(Target) Then Target.NumberFormatLocal = "##,###.???万円" Else Target.NumberFormatLocal = "##,###万円" End If End Sub

max_min
質問者

お礼

ありがとうございます。 完璧です!!

その他の回答 (6)

noname#148473
noname#148473
回答No.7

どうしても1つのセル内に「???.?万円」と表示させなければならないのでしょうか?数値を表示するセルと、単位(万円)を別にしてしまえば、あっさり解決しちゃいますよ。 たとえば、セルA1に「633.5」と入れて(書式は標準)、セルB1に「万円」と入れる。そのままだとA1とB1の間に薄い線が見えますので、セルA1とB1の背景に色をつける(セルの書式設定→パターンで選ぶ。「色なし」以外なら何でも可)これで済みます。 もし、金額が入力されていない場合に「万円」の表示を消したい場合は、セルB1に =IF(ISBLANK(A1),"","万円") とすれば良いです。 金額=0の場合も「万円」の表示を消したいならば、セルB1に =IF(A1=0,"","万円") でOKです。 この方法ではNGでしょうか?

max_min
質問者

お礼

ありがとうございます。

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.5

VBAでやってみました。一番ご希望に近いかと思います。「万円」をつけるなら"##,###.???"-->"##,###.???万円"としてください。 小数点以下は3桁までと仮定した例。 下記VBAの動かし方が判らなければ補足します。 Private Sub Worksheet_Change(ByVal Target As Range) If Target <> Int(Target) Then Target.NumberFormatLocal = "##,###.???" Else Target.NumberFormatLocal = "##,### " End If End Sub 欠点は (1)123.0といれても123となります。 (2)少数と整数が微妙に極く僅か揃わない。

max_min
質問者

補足

おお!まさにこれです! ありがとうございます。 ただ、このやり方だとそのシート全体にこの設定がかかってしまい、表以外のセルに文字列を入力するとエラーになります。 この書式設定をしたいのはセルの C4:E8、C16:E18、H4:K4の部分だけなのですが、そういう指定は出来鱒ますでしょうか?

  • naosan1229
  • ベストアンサー率70% (988/1406)
回答No.4

書式設定で @"万円" ではいかがでしょうか? 表示上では753.5万円にも753万円にもなります。 しかしながら、文字として認識するため、計算には使えませんが・・・。

max_min
質問者

お礼

ありがとうございます。 せっかくのご回答ですが、エクセルの表ですから計算に使えないとなるとちょっと無理です。

  • kmb01
  • ベストアンサー率45% (63/138)
回答No.3

そのような書式を指定することはできないと思います。 #,###.0として753.0万円で我慢するのが一番かと。 どうしても実現したいのであればおそらく書式ではできないので、 入力用マクロで入力毎に書式を設定する。 シート全体の内容を調べて書式を設定するマクロを作る。 入力用シートと表示、印刷用シートを別にする。 等の手段で無理やりということになると思います。

max_min
質問者

お礼

ありがとうございます。 難しいそうですね。

noname#113407
noname#113407
回答No.2

ユーザー定義で『通貨』をクリックして「少数点表示桁上げ」(0)や矢印のアイコンを一回押し1にしてそのまま入力されるとうまく行くと思いますが。

max_min
質問者

補足

ありがとうございます。 『通貨』を選択すると、¥マークがついてしまい、万円の表示が消えてしまいます。

  • santa9
  • ベストアンサー率15% (2/13)
回答No.1

表示→ツールバー で「書式設定」を追加します。 そこでツールバーに表示された「少数点表示桁上げ」(0や矢印のついたアイコン)を一回だけ押して、少数点第一位まで表示させるようにすればよろしいのでは?? この方法しか分かりません・・・ が、表示に問題はないようです(^^;)

max_min
質問者

補足

ありがとうございます。 「少数点表示桁上げ」で少数点第一位まで表示させるようにすると、整数をいれても 73.0のように小数第一位まで常にでてしまうんです。 それを防ぎたいのです。

関連するQ&A