• 締切済み

条件によってセル内の一部分を強調表示したい

セルE5に =IF($E$4="金額計算","価格+補正額 "&$G$4&" 円","価格*安全率 "&$M$4&" %") の条件式で結果を表示していますが、 $E$4="金額計算"の時には、「"&$G$4&" 円」部分を太文字、赤表示、 金額計算以外では「"&$M$4&" %」部分を太文字、青表示としたい。 どなたか教えて下さい。

みんなの回答

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

こんばんは! セル内のフォントを部分的に色を変え・太字にしたい!というコトですが、 数式によって表示されているデータをそのようにするのはおそらく無理だと思います。 ただ、これでは何もお役に立てないので・・・ VBAであればある程度はお望みに近い形にできると思います。 しかし、前述のように数式によって表示されてたセルではなく、実データに置き換えての方法になります。 画面左下の操作したいSheet見出し上で右クリック → コードの表示 → VBE画面に ↓のコードをコピー&ペーストしてE4セルのデータを入れ替えてみてください。 Private Sub Worksheet_Change(ByVal Target As Range) 'この行から Dim k As Long On Error Resume Next '←おまじない If Target.Address = "$E$4" Then With Target.Offset(1) .Font.ColorIndex = xlAutomatic .Font.Bold = False .Formula = "=IF($E$4="""","""",IF(E4=""金額計算"",""価格+補正額""&$G$4&""円"",""価格*安全率""&$M$4&""%""))" .Value = .Value For k = 1 To Len(.Value) If Mid(.Value, k, 1) Like "[0-9]" Then Exit For End If Next k If .Offset(-1) = "金額計算" Then With .Characters(Start:=k, Length:=Len(.Value)).Font .ColorIndex = 3 .Bold = True End With Else With .Characters(Start:=k, Length:=Len(.Value)).Font .ColorIndex = 5 .Bold = True End With End If End With End If End Sub 'この行まで ※ E5セルは実データにしていますので、入力されている数式は消えてしまいます。 ただし、E4セルのデータ変更があるたびにVBAで数式を入れ、それを実データとして表示しています。 ※ 余計なお世話かもしれませんが、E4セルが空白の場合も数式に加えてみました。 参考になりますかね?m(_ _)m

nakachanman
質問者

お礼

tom04さん 回答有り難うございます。 参考にして色々と試してみたいと思います。

回答No.2

セル内の一部分だけ色を変えるのは難しいかも 価格+補正額、価格*安全率 を表示するセルを、別のセル(例えば一つ左のD5とかにするならば、 「"&$G$4&" 円」 や 「"&$M$4&" %」だけ色を変更することができます。 E5で、 書式-条件付書式-ルールの管理 数式を利用して書式を設定する。 =$E$4="全額計算" 書式 色で赤を選択 それ以外はすべて青色ということであれば、 書式で元々の表示色を青色に設定しておけば良いです。

nakachanman
質問者

お礼

ORUKA1951さん、last_shishiさん早速の回答有り難うございます。やはり一部分の強調表示は難しそうですね。 強調部分だけを別セルにします。

  • ORUKA1951
  • ベストアンサー率45% (5062/11036)
回答No.1

文字列に円があるときと%があるときで条件付書式 「セルの強調表示ルール」→「文字列」

関連するQ&A

専門家に質問してみよう