• ベストアンサー

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

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

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

  • ベストアンサー
  • 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

  • 【エクセル】シート全体において文字数18字以上が既に入力されているセルだけを、文字のサイズを5にしたい。

    「シート全体において文字数18字以上が既に入力されているセルだけを、文字のサイズを5にしたい」 のですが、 条件付き書式は文字のサイズは変えられないようで、マクロでもいろいろと試行錯誤(for each nextとif thenの組み合わせなど)したが分かりません。 よろしくお願いいたします。

  • Excelマクロで置換

    Excelマクロで置換 セルA1に6桁・スペース・24桁の数字が入っています。 最初の6桁に130,397,430,440が含まれているシートを選択 そのシートの中に "ああああ"があったら"ああああい"に "いいいい"があったら"いいいいう"に "うううう"があったら"ううううえ"に と置換をするマクロを書きたいと思っています。 置換する対象の文字列は多いので別マクロで作成し呼び出したいと考えています。 シートは1ブックに30シート程。何シートあるかはブックによって変わります。 現在マクロの記録を使って試行錯誤しているのですが なにぶん初心者なのでなかなかうまくいきません。 どなたかご教授頂ければと思います。

  • 入力規制セルの色付け

    エクセル2003にて入力規制とリストを使用し効率のよい入力を行っておりますが、入力規制セルのリスト選択後セル色をOKの場合緑、NGの場合赤に表示させてたいと考えております。 全体的にはシートの入力が完了しているのか、未入力箇所があるのか感覚的に判断したいと考えております。

  • エクセルのあるセルに■表示が出たら、違うシートに移動することがしたい

    私はマクロは全然分からないのでマクロを使わないで 出来るやり方を教えて欲しい 内容は、セルに入力規則のリストで■と□が選択出来るようにしました。 □から■を選択しセル内の表示が■に変わった時点で、ある該当シートに移動したいのですが、そんなこと出来るでしょうか教えて欲しい

  • セルの連動について質問です。

    例えばシート1のA1とシート2のA1に入力規則で同じリストを作ります。 そして、シート1のA1でリストを選択すれば、シート2のA1も同じものが選択されている。 同様にシート2でA1を変更すれば、シート1のA1も変更する。 こういう事はExcelできますか? もし、出来るのであればアドバイス頂けないでしょうかm(_ _ )m

  • [EXCEL2003]セルのリストの文字数制限を回避する方法

    EXCEL VBAで業務アプリを作成しておりまして、セル上に データ(D) → 入力規則(L) → 入力値の種類でリストを選択 でリストを作成しております。しかしリストをカンマ区切りの 文字列で指定すると255文字までしか入力できません。 リストの内容はセルのレンジ指定でも可能ですが、同一シート上を 参照する場合のみ対応しており、画面構成上使用できません。 文字列で255文字を越えて指定する方法はありますか? または他シートのセルをレンジ指定する方法はありますか?

  • 【エクセルVBA】セルの数式種別により文字色変更

    おわかりになる方がいらっしゃいましたらご教示願えませんでしょうか。 今手元にあるエクセルにつき、文字色を一定のルールで変えたいと思っています。 1.シート内参照をしている数式が入っているセルは黒色 2.シート外(別シート)参照している・・・・・・・・・・・・・ 緑色 3.直接入力している・・・・・・・・・・・・・・・・・・・・・・・・・青色 ただし、文字色を変えたくない部分もあるので、セル選択した後に選択したセルに対してのみ 上記の処理をしたいと考えております。 もし御存じの方、若しくはどのようなマクロでできるのかを分かる方がいらっしゃいましたらご教示 願えませんでしょうか。 お忙しい中恐縮ですが、何卒宜しくお願い申し上げます。

  • エクセルマクロで条件に当てはまるシートの名前

    何日も試行錯誤しましたが、わからないので教えてください。 あるファイルがあります。 そのファイルには数十枚のほぼ同じ形のデータが入ったワークシートがあります。 それぞれのワークシートには、ある範囲(例 A5:D10)にデータが入っていたりいなかったりです。 そこで、その範囲にデータが無ければ、別のブックの例えば「リスト」というシートに一覧にして、そのシートの名前を書き出したいのです。 それをマクロで記述するやりかたがどうやってもうまく行きません。 どうかお教えください。

  • セル内に入力した文字をシート名にするマクロ

    セル内に入力した文字をシート名にするマクロの方法を探しています やりたいことは以下のようなことなのですが http://www.excel.studio-kazu.jp/kw/20021007161409.html 上記のアドレスが若干似ているんですがやりたいこととは少し違います A1 ヤマダ A2 こじま A3 123456 A4 abcde とセル内に入力されている文字を シート名にしたいです A1~A4まで一度に選択して選択した数だけ この場合はA1~A4までなので四枚新しくシートを作り 新しく作ったシートにA1~A4のセル内の文字をシート名に上から順番に A1から左寄せにしたいです

  • Excelのセル内の文字列の文字色変更について

    申し訳ございません、どなたか教えていただけないでしょうか。 エクセルのセル内の文字列を、ある特定の文字列の時に文字色を変えたい。 例えば、赤、青、黄、桃、緑という文字列をセルの中に入れた時、 その文字の色がそれぞれ、 「赤」の時:赤色の文字色 「青」の時:青色の文字色 「黄」の時:黄色の文字色 「桃」の時:桃色の文字色 「緑」の時:緑色の文字色 というように自動的に設定をしたいのです。 条件付き書式では、3種類までならできますが、4種類以上だとダメですよね。 できればマクロではなく、セルの書式設定「ユーザー定義」で設定したいのですが、 公式はございますでしょうか。 数値によって色を変更する方法は、いろいろなサイトで確認しましたが、 文字列で色を変えるという方法がなかったもので質問をいたしました。 よろしくお願いいたします。

専門家に質問してみよう