【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】

一つのセル内に少数点以下を表示させた時、少数点以下の数字だけ色を変えたり、サイズを変えたり
することは可能でしょうか

A 回答 (3件)

No.2です。



>マクロの中で、計算しその結果に対して表示を変えたいのですが
の件について・・・

当然コード内にワークシート関数を記載すれば可能ですが、
セル内のフォントを部分的に変えたい場合、生データにし、なおかつ「文字列」にする必要があります。
計算結果を「値」として表示させれば可能になります。
ただし、数式そのものが消えてしまいますので、一度きりの操作になってしまいますよね?

前回のコードそのものが1セルだけのChangeイベントです。
おそらく数式を入れる場合複数セルに入れる場合が多いと思います。
すなわち前回のコードでは不向きだと思います。

別案として、一旦数式によって計算結果を表示させ
ご自身で操作したいセルを範囲指定 → マクロ実行 といった流れの方が理に適っていると思います。

そこで今回は一旦数式によって表示されている計算結果の小数点以下の数値を操作するコードにしてみました。

前回同様シートモジュールに↓のコードをコピー&ペースト → Excel画面に戻り
文字操作をしたいセルを必ず範囲指定した後(←重要)にマクロを実行してみてください。
(Alt+F8キー → マクロ → マクロ実行です)
※ 前回は文字列にも対応できるようにしていましたが、今回は計算結果は数値だという前提です。

Sub Sample1() 'この行から
Dim k As Long, str As String, c As Range
For Each c In Selection
str = c.Value
If InStr(str, ".") > 0 Then
Application.EnableEvents = False
k = InStr(str, ".") + 1
c.NumberFormatLocal = "@"
c.HorizontalAlignment = xlRight
c = str
With c.Characters(Start:=k, Length:=Len(c)).Font
.Size = 9
.ColorIndex = 3
End With
Application.EnableEvents = True
End If

Next c
End Sub 'この行まで

※ 一旦マクロを実行した後、範囲指定したセルの表示形式が「文字列」になっていて
右寄せになっているので注意してください。m(_ _)m
    • good
    • 0
この回答へのお礼

ありがとうございます
OKです

思っていた画面表示ができそうです

お礼日時:2014/09/10 09:22

こんにちは!


VBAになってしまいますが、一例です。

>一つのセル内に少数点以下を表示させた時・・・
とありますが、数式によって表示されたデータでは変化しません。
あくまでご自身で手入力するとします。
A列限定としてみました。

画面左下の操作したいSheet見出し上で右クリック → コードの表示 → VBE画面のカーソルが点滅しているところに
↓のコードをコピー&ペースト → Excel画面に戻り、A列にデータを入力してみてください。

Private Sub Worksheet_Change(ByVal Target As Range) 'この行から
Dim k As Long, str As String
If Intersect(Target, Range("A:A")) Is Nothing Or Target.Count > 1 Then Exit Sub
With Target
.NumberFormatLocal = "G/標準"
.HorizontalAlignment = xlLeft
If IsNumeric(.Value) Then
.HorizontalAlignment = xlRight
str = .Value
If InStr(str, ".") > 0 Then
Application.EnableEvents = False
.NumberFormatLocal = "@"
k = InStr(str, ".") + 1
.Value = str
With .Characters(Start:=k, Length:=Len(.Value)).Font
.Size = 9 '←サイズは好みで!
.ColorIndex = 3 '←赤
End With
Application.EnableEvents = True
End If
End If
End With
End Sub 'この行まで

※ フォントサイズ・フォント色は好みで変えてください。
※ セル左上に「エラーチェックオプション」の三角マークが表示されると思いますが
目障りであれば(Excel2007以降をお使いの場合)
画面左上の丸いOfficeボタン(Excel2010以降は「ファイル」)→ Excelのオプション(オプション)
→ 数式 → 「エラーチェック」の「バックグラウンドでエラーチェックを行う」の
チェックを外しておきます。m(_ _)m
    • good
    • 0
この回答へのお礼

回答頂いたコードで
手入力により、思いとうりの結果が出ました

ありがとうございます

VBA初心者なのではっきり理解できていないのですが
マクロの中で、計算しその結果に対して表示を変えたいのですが

このコードをアレンジすることで可能なんでしょうか?

お礼日時:2014/09/09 21:17

>一つのセル内に少数点以下を表示させた時、少数点以下の数字だけ色を変えたり、サイズを変えたりすることは可能でしょうか


セルの値が文字列の場合は文字単位でフォントの種類、色、サイズを変更できます。
但し、TEXT関数で数値を文字列に変換するときにフォントの書式を指定することはできないようです。
VBAでは可能と思いますが不得手なので他の回答者のアドバイスを待つことをお勧めします。
「小数点以下の文字だけ書式を変えることは可」の回答画像1
    • good
    • 0
この回答へのお礼

回答有難うございます
文字列としてではなく数字を使いたいので、VBAに詳しい方の回答を待ちます

お礼日時:2014/09/09 21:05

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

このQ&Aを見た人はこんなQ&Aも見ています


おすすめ情報