• ベストアンサー

マクロで同一セルの文字色を変更する方法を質問します

エクセルで「入力規則」の「リスト」から、マーク(文字)を選択する表を作りました。 選択した文字により、自動的に文字色を変更させたいのです。 「●」を選択した場合、赤文字色に 「◆」を選択した場合、緑文字色に 「★」を選択した場合、ピンク文字に 「◆★」を選択した場合、◆は緑、★はピンク文字色に マクロを適用するのは、シート全体です。 私はマクロ初心者で試行錯誤を繰り返しましたが、思うようなマクロができませんでした。 お解りになる方、ぜひ教えて下さい。よろしくお願いします。

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

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

こんばんは! 色々やり方があるかと思いますが、一例です。 Private Sub Worksheet_Change(ByVal Target As Range) With Target If .Count = 1 Then Select Case .Value Case "●" .Font.ColorIndex = 3 Case "◆" .Font.ColorIndex = 50 '←「シーグリーン」にしました Case "★" .Font.ColorIndex = 38 '←「ローズ」にしました Case "◆★" .Characters(Start:=1, Length:=1).Font.ColorIndex = 10 .Characters(Start:=2, Length:=1).Font.ColorIndex = 38 End Select End If End With End Sub こんな感じではどうでしょうか?m(_ _)m

kei5884
質問者

お礼

まさに希望したマクロです。 本当に助かりました。 ありがとうございます。

その他の回答 (1)

  • plus_x
  • ベストアンサー率62% (10/16)
回答No.1

こんな事でしょうか? Private Sub Worksheet_Change(ByVal Target As Range) Dim i As Long If Target.Value = "" Then Exit Sub For i = 1 To Len(Target.Value) If Target.Characters(Start:=i, Length:=1).Text = "●" Then Target.Characters(Start:=i, Length:=1).Font.ColorIndex = 3 If Target.Characters(Start:=i, Length:=1).Text = "◆" Then Target.Characters(Start:=i, Length:=1).Font.ColorIndex = 4 If Target.Characters(Start:=i, Length:=1).Text = "★" Then Target.Characters(Start:=i, Length:=1).Font.ColorIndex = 7 Next i End Sub

kei5884
質問者

お礼

早速の回答ありがとうございました。

関連するQ&A