アプリ版:「スタンプのみでお礼する」機能のリリースについて

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

A 回答 (5件)

こんにちは。



>作成中の表のセル幅が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 に換えて、マウス選択してから、マクロをすれば、できます。

この回答への補足

Wendy02さん 何度もありがとうございます。

教えていただいたコードを新しいブックで試したらうまくいきました。

ところが、喜び勇んで作成中のブックに同じ記述のシート・マクロを取り付けてやってみましたら、小数2桁の数値を入力しても、四捨五入されて1桁になってしまいます。

この前の「小数1桁の場合もフォント変更をしてしまうコード」はそのとおりに実行できたのですが。

ブックを新しくして、表だけをコピーし、シートマクロのない状態からあらためてやってもみましたがだめでした。いやはや、参りました。

どうしたらよいか教えて下さい。よろしくお願いします。

補足日時:2007/05/19 09:24
    • good
    • 0
この回答へのお礼

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

お礼日時:2007/05/20 14:59

こんにちは。



>記述のシート・マクロを取り付けてやってみましたら、小数2桁の数値を入力しても、四捨五入されて1桁になってしまいます。

今、すぐには回答ができません。新しいブックの場合の書式は、デフォルト状態なら、小数2桁を入れれば、2桁でるはずですよね。(こちらで試した範囲です)小数点以下1桁を出すには、書式設定を「0.0」などとしていなければならないはずです。それによって、小数点以下2桁の数値は、四捨五入されて1桁になるわけです。

>表だけをコピーし、

データ自体をコピーすれば、書式も同じように複写されてはいますが、それを、マクロで補正するかどうか、というところです。今のマクロは、表示に対して対応させるように作られています。

現在の書式設定は、「0.0」ということでしょうか?

それを、デフォルトに戻すか、「0.0#」とすればよいのですが、小数点なしの場合は、「10.0」となってしまいます。それを、「10」にしたいという時は、「デフォルト=標準」にするか、マクロで補正しなければなりません。

どのような書式にしていくのでしょうか?
    • good
    • 0
この回答へのお礼

endy02さん

途中で気付いて、セル幅を 2.5 から 3 に広げ、8p で小数二桁まで入るようにしました。
印刷は 90% に縮めてA4に押し込みました。

はじめに教えていただいた、小数部分があるかないかの区別だけにし、問題は解消しました。

いろいろ勉強させていただき、ありがとうございました。

お礼日時:2007/05/20 14:57

こんにちは。



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 で閉じれば設定は完了です。

この回答への補足

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

補足日時:2007/05/18 11:58
    • good
    • 0
この回答へのお礼

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

お礼日時:2007/05/20 15:00

条件付書式を使っても、小数部分のフォントを変えることは出来ません


ので(つか、条件付書式でフォントサイズの変更は出来ない)、
2つのセルを使って、小数部分と整数部分を別々に、別のセルに表示
する以外に方法はなさそうです。

整数部分は「=INT(A1)」で、小数部分は「=A1-INT(A1)」で出てきます
ので、そうして計算した上、小数部分を左寄せにするとか・・・ですね。

まあ、最後の最後はマクロを使えば何とでもなるんですが・・・。
    • good
    • 0
この回答へのお礼

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

お礼日時:2007/05/20 15:01

条件付書式で以下を設定してください。


セルがA1であれば、

「数式が」 =MOD(A1,1)<>0
    • good
    • 0
この回答へのお礼

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

お礼日時:2007/05/20 15:03

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!