• ベストアンサー

エクセルVBAで、範囲内の決まった文字とその横に色をつけたい

B4:AD27に表があり、そこにアルファベット(大文字)が振ってあります。それ自身とその左のセルに色をつけたいと考えています。 その色なのですが、一色ではなく。アルファベットにそれぞれ対応した色が指定してあります。(B1:O1に例えばB1にはAと文字があり赤になっています) 指定した色を変えていくことはVBAで可能でしょうか?

  • newme
  • お礼率54% (218/400)

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

  • ベストアンサー
  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.1

>VBAで可能でしょうか? 可能なんですけど、丸投げですか? 質問には曖昧なところが多いのですが、例えば ・色を変えるタイミングはセルに入力した時点? それとも一括して処理? ・B1:O1に指定されている色は文字色? それとも背景色? ・アルファベットは1文字のみ入力されている? それとも先頭文字? ・大文字、小文字は混在していない? ・仮にB4セルに着色するとき、左のA4セル(表外)も着色してよい? などです。 とりあえずマクロにしてみますが、修正はご自身で行ってくださいね。 以下のマクロをALT+F11でVBE画面を開き、左上のVBA Projectでシート名を右クリックし「挿入」→「標準モジュール」で表示される画面に貼り付けて下さい。マクロの実行はワークシート画面に戻ってALT+F8でマクロ一覧を開き、マクロ名を選択して「実行」ボタンです。 Sub Macro1() Dim r, trg As Range  For Each r In Range("B4:AD27")   If r.Value <> "" Then    Set trg = Range("B1:O1").Find(what:=r.Value, LookIn:=xlValues, lookat:=xlWhole)    If Not trg Is Nothing Then     r.Offset(0, -1).Resize(1, 2).Interior.ColorIndex = trg.Interior.ColorIndex '    r.Offset(0, -1).Resize(1, 2).Font.ColorIndex = trg.Font.ColorIndex    End If   End If  Next r End Sub 上記マクロはセルの文字列が完全一致するとき、B1:O1の背景色で着色しています。文字色にするなら8行目のコメントにしている行をその上の行と差し替えてください

newme
質問者

お礼

zap35さんありがとうございました。すばらしいものでした。 ありがとうございます。

その他の回答 (1)

  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.2

色はフォントではなくセルですね? こんな感じでしょうか。 Sub Test() Dim c As Range, x As Range With ActiveSheet .Range("B4:AD27").Interior.ColorIndex = xlNone For Each c In .Range("B4:AD27") Set x = .Range("B1:O1").Find(What:=c.Value, LookIn:=xlValues, LookAt:= _ xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=True) If Not x Is Nothing Then c.Offset(0, -1).Resize(1, 2).Interior.ColorIndex = x.Interior.ColorIndex End If Next End With End Sub

newme
質問者

お礼

merlionXXさんありがとうございます。試させていただきました。すばらしいものでした。短時間にこうやってできるの憧れです。 二方ともすばらしく甲乙つけがたいのですが、回等順ということにさせていただこうと考えるので次点とさせていただくのですが、同じように思っています。ありがとうございました。

関連するQ&A

  • EXCELで、文字列に含まれる色を判別したい

    1つのセルに、半角小文字アルファベットabc...zの文字列が入っています。 その中のいくつかのアルファベットが赤色になっています。 赤色のアルファベットだけを見つけて、別のセルにそのアルファベットを 抽出することはできるのでしょうか?

  • Excel VBA セル内の文字列操作について

    例えば、A列(A2より下のセル)のセル内にある文字列が、それぞれ対応するB列(B2より下のセル)のセル内にあった場合、該当文字列のフォントの色を変えたい(例えば「赤」)のですが、VBAで一括処理とかできるのでしょうか? <例> A列      B列 テスト     このテストは・・・ → 「テスト」の部分のみ赤色にしたい。 サンプル   サンプル     → 文字列全部分の「サンプル」を赤色にしたい。 どうかご教示の程よろしくお願いいたします。

  • エクセルの文字の色について

    エクセルで質問があります。 ・A1のセルに(1)と打って文字の色を赤にします。 ・B1のセルに(2)と打ちます。 (質問) ・A1の文字が赤色の場合、B1のセルに文字を打った時、自動でA1のセルと同じ色になるようにしたいのですが、 やり方ありますか?教えて頂けませんか。

  • Excel VBA 選択した範囲の1行目に色を付けたい

    VBA初心者です。 セルB4~F15に表が作成されています。 プロシージャを実行して、セルB5~F15にブルー。表1行目のセルB4とF4のみに赤の色を付けるというコードを記述したいのです。 以下のように記述しました。 Sub セルに色()    Range("B4").Select    ActiveCell.CurrentRegion.Select    Selection.Interior.ColorIndex = 8    Selection.Range(Cells(1, 1),Cells(1,5)).Interior.ColorIndex = 3 End Sub Rangeでは連続シートになるため、Unionに変更してみましたが、 Unionはオブジェクトがサポートされていない旨のエラーが出ました。 どのように記述すればよいでしょうか? どうぞよろしくお願いいたします。

  • エクセル2003 VBAなのですが

    エクセル2003 VBAなのですが   A   B    C    D    E    F 1 あ   い   う   お   う   123 2 お   さ   え   あ   お   お 3 あ   い   え   お   え   888 上記のような表があるときに 3個以上同じ文字がある場合にセルに色をつけていきたい状況です 上記表でいうと『あ』と『え』と『お』のセルに色をつけたいのです セルには文字列のほかに数字も入っている状況です 単純にCtrl+Fで検索をして『すべて検索』で 出てきたセル全部に色をつける。 それをA1から文字があるところ全部やる と言った事をマクロでやりたいと思っております。 皆様よろしくお願いいたします。

  • 左列の文字の色と同じ文字の色にしたいという条件付け書式は可能でしょうか

    左列の文字の色と同じ文字の色にしたいという条件付け書式は可能でしょうか?例えばA1のセルのフォントの色が黒の場合B1のセルのフォントも黒、A1が赤の場合B1も赤のフォント、というように、左の列のフォントの色同じ色のフォントになるよう条件付けしたいのです。可能でしょうか?どのようにいれたらよいか教えていただけませんでしょうか?

  • エクセルVBA AdvancedFilterの範囲

    エクセルVBAのAdvancedFilterのついて教えてください AdvancedFilterは検索条件をCriteriaRangeで指定するかと思うのですが、そのつど変更することは可能なのでしょうか 現在、B3からO3に検索するための「見出し」が入力されています B4からO4に検索したい文字を入力しCriteriaRange:=Range("B3:O4")としてきたのですが、検索を増やし場合があります B5からO5にも入力し、Range("B3:O5")とすればいいのでしょうが、そのつど検索範囲を変更するのは大変です あらかじめRange("B3:O5")としてしまうと、4行目までしか入力しなかった場合に、5行目がORで検索されるので、余白行が検索されることになりすべてのデータを抽出してしまいます 最大でも10条件用意しておけば足りると思うので、Range("B3:O13")としたいです "空白セルの場合は、上の行をコピーする"と命令させておけば、空白セルがなくなりすべてのデータを抽出してしまうということは回避できるのかな?と考えたのですが、どのように実現するか分かりませんでした それか、"最終行を認識し、そこまでの範囲とする"とか"余白セルを無視する"ことも可能なのでしょうか 自分が思いついたやり方でなくでも構わないので、検索のつど範囲を変更できる方法があれば教えてください よろしくお願いします

  • 条件付きでセルと文字の色を変えたいです。

    隣り合うセルの値を比較して、その条件によってセルと文字の色を変えたいと思ってます。   A B 1 5 3 2 4 8 1行目の場合は左のセルを赤、文字色を黒 2行目の場合は左のセルを青、文字色を黄 と変更させたいのですが、回答宜しくお願いします。

  • excel 文字の色を変える

    Excelについて、方法を知っていれば教えて下さい。 例えば、セルA1の値によって、セルB1の表示文字の色を変える事ができますか? セルA1の値によってA1の表示文字の書式を変更する事は可能ですが、B1の書式を変更する事ができません。 具体的に言うと、A1には数値が入っています。 A1の値がZeroならばA1の表示を赤にします。(<--これはできますのでOKです) B1には表示したい文字が入っています。 A1の数値がZeroならば、B1に入っている文字を赤で表示したい。(<--これが解らない)

  • 特定の文字を入れるとセルの色・文字色が変わる

    VBA初心者です。  特定の文字を入力すると、セルの色と文字の色が変わるようにしたいのですが 可能でしょうか?(例えば、”赤”と入力すると、セルの色が青・文字色が白。という感じです) 特定の文字は約10種あります。 どうか、お助けを。。

専門家に質問してみよう