• ベストアンサー

小数点以下の文字だけ書式を変えることは可能ですか

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

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

  • ベストアンサー
  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.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

kappa44103
質問者

お礼

ありがとうございます OKです 思っていた画面表示ができそうです

その他の回答 (2)

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.2

こんにちは! 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

kappa44103
質問者

お礼

回答頂いたコードで 手入力により、思いとうりの結果が出ました ありがとうございます VBA初心者なのではっきり理解できていないのですが マクロの中で、計算しその結果に対して表示を変えたいのですが このコードをアレンジすることで可能なんでしょうか?

  • bunjii
  • ベストアンサー率43% (3589/8249)
回答No.1

>一つのセル内に少数点以下を表示させた時、少数点以下の数字だけ色を変えたり、サイズを変えたりすることは可能でしょうか セルの値が文字列の場合は文字単位でフォントの種類、色、サイズを変更できます。 但し、TEXT関数で数値を文字列に変換するときにフォントの書式を指定することはできないようです。 VBAでは可能と思いますが不得手なので他の回答者のアドバイスを待つことをお勧めします。

kappa44103
質問者

お礼

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

関連するQ&A