• ベストアンサー

Ecxelで少数を入力するときにフォントを変えたい

Excelで、整数でない値(少数のついた値)を入力したときに、そのセルのフォントを小さくする条件を設定しておきたいのですが、どうしたらよろしいでしょうか、教えて下さい。よろしくお願いします。

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

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.4

こんにちは。 >作成中の表のセル幅が2.5、フォントは9なので、 ということは、 さて、マクロのほうは、以下のようにしていただければよいと思います。 Private Sub Worksheet_Change(ByVal Target As Range) Dim c As Range Application.EnableEvents = False For Each c In Target  If IsNumeric(c.Value) Then    If Len(Mid$(c.Text, InStr(c.Text, ".") + 1)) > 1 Then     c.Font.Size = 8 'フォントサイズ(ひとつ下にしました)   ' Else   '  c.Font.Size = 9 'フォントサイズ    End If  End If Next c Application.EnableEvents = True End Sub もし、数字によって元に戻す場合は、コードの中の、以下の2行分の「'(シングルコーテーション)」を外してくださいね。   ' Else   '  c.Font.Size = 9 'フォントサイズ 一括で直してしまうようでしたら、 Sub ....() という一般のプロシージャにしておいて、 For Each c In Target のTarget の部分を、Selection に換えて、マウス選択してから、マクロをすれば、できます。

awazo
質問者

お礼

ありがとうございました。

awazo
質問者

補足

Wendy02さん 何度もありがとうございます。 教えていただいたコードを新しいブックで試したらうまくいきました。 ところが、喜び勇んで作成中のブックに同じ記述のシート・マクロを取り付けてやってみましたら、小数2桁の数値を入力しても、四捨五入されて1桁になってしまいます。 この前の「小数1桁の場合もフォント変更をしてしまうコード」はそのとおりに実行できたのですが。 ブックを新しくして、表だけをコピーし、シートマクロのない状態からあらためてやってもみましたがだめでした。いやはや、参りました。 どうしたらよいか教えて下さい。よろしくお願いします。

その他の回答 (4)

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.5

こんにちは。 >記述のシート・マクロを取り付けてやってみましたら、小数2桁の数値を入力しても、四捨五入されて1桁になってしまいます。 今、すぐには回答ができません。新しいブックの場合の書式は、デフォルト状態なら、小数2桁を入れれば、2桁でるはずですよね。(こちらで試した範囲です)小数点以下1桁を出すには、書式設定を「0.0」などとしていなければならないはずです。それによって、小数点以下2桁の数値は、四捨五入されて1桁になるわけです。 >表だけをコピーし、 データ自体をコピーすれば、書式も同じように複写されてはいますが、それを、マクロで補正するかどうか、というところです。今のマクロは、表示に対して対応させるように作られています。 現在の書式設定は、「0.0」ということでしょうか? それを、デフォルトに戻すか、「0.0#」とすればよいのですが、小数点なしの場合は、「10.0」となってしまいます。それを、「10」にしたいという時は、「デフォルト=標準」にするか、マクロで補正しなければなりません。 どのような書式にしていくのでしょうか?

awazo
質問者

お礼

endy02さん 途中で気付いて、セル幅を 2.5 から 3 に広げ、8p で小数二桁まで入るようにしました。 印刷は 90% に縮めてA4に押し込みました。 はじめに教えていただいた、小数部分があるかないかの区別だけにし、問題は解消しました。 いろいろ勉強させていただき、ありがとうございました。

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.3

こんにちは。 awazoさんは、マクロはお使いになったはずだと思いますので、それは、イベントプロシージャで行ったらよいかと思います。 Private Sub Worksheet_Change(ByVal Target As Range) Dim c As Range Application.EnableEvents = False For Each c In Target  If IsNumeric(c.Value) Then    If Int(c.Value) <> c.Value Then     c.Font.Size = 9 'フォントサイズ    End If  End If Next c Application.EnableEvents = True End Sub シート・マクロの取り付け方: マクロを実行しようとするワークシートのシートタブ(下部のSheet1,Sheet2 ...)を右クリックすると、「コードの表示(V)」というメニューがありますから、それをクリックしてください。そして、開いた画面に、以下のコードを貼り付けて、Alt + Q で閉じれば設定は完了です。

awazo
質問者

お礼

ありがとうございました。

awazo
質問者

補足

Wendy02さん ありがとうございます。 作成中の表のセル幅が2.5、フォントは9なので、1桁の小数はそのまま表示可能でした。 小数部分が2桁のときフォントを変えるには、どういう記述にしたらよいですか。もう一度お教えください。よろしくお願いします。

  • FEX2053
  • ベストアンサー率37% (7991/21371)
回答No.2

条件付書式を使っても、小数部分のフォントを変えることは出来ません ので(つか、条件付書式でフォントサイズの変更は出来ない)、 2つのセルを使って、小数部分と整数部分を別々に、別のセルに表示 する以外に方法はなさそうです。 整数部分は「=INT(A1)」で、小数部分は「=A1-INT(A1)」で出てきます ので、そうして計算した上、小数部分を左寄せにするとか・・・ですね。 まあ、最後の最後はマクロを使えば何とでもなるんですが・・・。

awazo
質問者

お礼

ありがとうございました。

回答No.1

条件付書式で以下を設定してください。 セルがA1であれば、 「数式が」 =MOD(A1,1)<>0

awazo
質問者

お礼

ありがとうございました。

関連するQ&A