• ベストアンサー
  • 困ってます

エクセルVBAで該当するセルに色をつけたい

ご覧いただき、ありがとうございます。 当方、VBA初心者です。 エクセルVBAで、「対象の社名」に該当するセルに色をつけたいと思っています。 それぞれ別シートになります。 たとえば、abc(株)が対象なら、 1.(株)は(株)や株式会社など表記がバラバラなので取る⇒abcの文字列が検索対象 2.「検索シート」にあるabcを検索 3.対象のセルに色をつける 4.文字列がある限り(この場合は○がついている部分はずっと)検索続ける ※○の数式はつけた方が探しやすいと思って作ったので、なくても構いません わかりづらい文章ですみません。 ぜひお知恵を貸してください><

共感・応援の気持ちを伝えよう!

  • 回答数6
  • 閲覧数578
  • ありがとう数2

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

  • ベストアンサー
  • 回答No.6
  • kmetu
  • ベストアンサー率41% (562/1346)

また追加です 追加ばかりで申し訳ありません 検索範囲がB2から始まってるとしたらこちらも変更してください。 MyBottom = Worksheets("検索シート").Range("A" & Rows.Count).End(xlUp).Row ↓ MyBottom = Worksheets("検索シート").Range("B" & Rows.Count).End(xlUp).Row

共感・感謝の気持ちを伝えよう!

その他の回答 (5)

  • 回答No.5
  • kmetu
  • ベストアンサー率41% (562/1346)

追加その3です なんかよーく見ると検索範囲がB2から始まってるみたいなので With Worksheets("検索シート").Range("A1:A" & MyBottom) ↓ With Worksheets("検索シート").Range("B2:B" & MyBottom) に変更してください。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

こちらで作成したわかりづらい図にも関わらず、 細かい回答ありがとうございました! 現在コーディングしてますので、 もしかしたらまた質問させていただくかもしれません。。 取り急ぎ、お礼申し上げます。

  • 回答No.4
  • kmetu
  • ベストアンサー率41% (562/1346)

追加その2です なんか左側の画像のシートが社名一覧みたいになっているみたいですが、もしかしてそれをすべて検索したいというのでしたら シート名が分からないのでSheet2としました For i = 2 To Worksheets("Sheet2").Range("B" & Rows.Count).End(xlUp).Row 'Myfindstr = Range("C1").Valueの部分が '↓ Myfindstr = Worksheets("Sheet2").Range("B" & i).Value 先に示したコード Next i としてください。

共感・感謝の気持ちを伝えよう!

  • 回答No.3
  • kmetu
  • ベストアンサー率41% (562/1346)

追加です 検索したい社名がどこかのセルにあるとしたら(たとえばC1とか) Myfindstr = Range("C1").Value として Set c = .Find("*abc*", LookIn:=xlValues) ↓ Set c = .Find("*" & Myfindstr & "*", LookIn:=xlValues) に変更してください。

共感・感謝の気持ちを伝えよう!

  • 回答No.2
  • kmetu
  • ベストアンサー率41% (562/1346)

画像が見難いのでどこに何があるのか分かりませんが 以下のコードはA列に社名があるとして abc を含む社名のセルを見つけてグレーに塗ります。 Dim MyBottom As Long Dim c As Range Dim firstAddress As String MyBottom = Worksheets("検索シート").Range("A" & Rows.Count).End(xlUp).Row With Worksheets("検索シート").Range("A1:A" & MyBottom) Set c = .Find("*abc*", LookIn:=xlValues) If Not c Is Nothing Then firstAddress = c.Address Do With c.Interior .ColorIndex = 15 .Pattern = xlSolid .PatternColorIndex = xlAutomatic End With Set c = .FindNext(c) Loop While Not c Is Nothing And c.Address <> firstAddress End If End With なお .ColorIndex の色は以下のページを参照にして好きなものを選んでください。 http://www.relief.jp/itnote/archives/000482.php

共感・感謝の気持ちを伝えよう!

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

こんばんは! 画像が小さくて詳細が判りません。 質問文だけで判断し、「sbc」が含まれているセルを「黄色」に塗りつぶすようにしてみました。 ↓のコードを標準モジュールにコピー&ペーストしてマクロを実行してみてください。 Sub Sample1() Dim c As Range For Each c In ActiveSheet.UsedRange If InStr(c, "abc") > 0 Then c.Interior.ColorIndex = 6 End If Next c End Sub ※ 画像ではA列に会社名?があるように見えるのですが、 すべてのセルを対象にしています。m(_ _)m

共感・感謝の気持ちを伝えよう!

質問者からのお礼

回答ありがとうございます!! 画像が小さくてすみませんでした…

関連するQ&A

  • エクセルのVBAについて質問です。

    エクセル2003のVBAについて質問です。 複数の検索したい文字列があり、複数の検索対象セルがあります。 セルの文字列が検索文字列のいずれかと一致したセルの背景の色を変えたいです。 よろしくおねがいします。 仕事でマクロを組まなけばならなくなってしまったのですが、 初心者のため検索してみたり調べてみたり、参考にして作ってみたのですがうまくいかないばかりかどんどん解らなくなってしまいました。 どうか助けてください。 sheet1のセルが検索対象 (全セル対象でも大丈夫ですが、検索したいセルはB2→J2、B11→J11、B20→J20の範囲です)、 sheet2のA列に検索したい文字列が入力されています。 この検索したい文字列は今後増えていく可能性があるので、増えた場合にも対応できるようにと考えています。 sheet1(検索対象) あ い う え あ お お sheet2(検索文字列) あ う お け き ↑の様に入力されており、sheet1の「あ」と「う」と「お」のセルの背景を変えたいです。 色を変えたいのはsheet1です。 findメソッドや繰り返し処理などを調べて実践してみたのですが、 いきなりマクロを組めといわれた超初心者には難しく質問しています。 自分でやってみたのですが、 sheet1の最初の「あ」のみが変換され、後に出てくる「あ」が変換されません… どうしたらいいのか…どうすることも出来ず困っております。 すみませんが、どなたか優しい方助けてください。 よろしくおねがいします><

  • EXCEL VBA 別シートで検索後、貼り付け

    excel2010 (ブック名A.xlsx)にシート名SA、シート名SBがあります。 シート名SAのC列に検索対象(C1~C50位)があり シート名SBのB列が検索範囲(流動的ですがB1~B100位の範囲)です。 検索対象は文字列で、これが検索範囲のセルにに含まれていた場合 検索範囲の隣のセルCxxに検索対象文字列をコピー&ペーストしたいです また、検索範囲の行数に値があるまで、順次処理をしていきたいです

  • エクセルマクロで特定の文字を探して隣のセルの色を変える

    エクセルに入力されている特定の文字を探し出して隣のセルに色をつけたいと考えています。 検索の対象となるセルは全てのシートのB列です。 検索する文字は色々な英数字の組み合わせの中に含まれています。   A  B 1  10 ABC000012 2  20 AAC000013 3  30 ACC000014 上記のような値が入力されている状態で、B列の"ABC"か"AAC"の何れかが入力されているセルの隣のA列のセルの色を変えたいです。 この場合はA1とA2のセルの色が変わるというイメージです。 VBAを使って処理したいのですが、どなたかご教授頂けないでしょうか。宜しくお願いいたします。

  • Excel2002の検索

    Excel2002で検索をしました。 A1セルには「3」を入力しています。数式は入れていません。 「編集」「検索」で検索する文字列には「3」を入力しました。 検索場所は「シート」、検索対象は「数式」にしました。 そこで検索をすると、A1セルの「3」も検索されました。 そこで質問です。 検索対象は「値」ではなく「数式」なのにどうして検索されたのでしょうか?検索対象の値、数式の違いはなんでしょうか?

  • Excelでセル内の文字列のみをコピーする方法

    Excelでセル内の文字列のみをクリップボードにコピーする方法を教えてください。 ※クリップボードにコピーをする方法であり、他のセルに値のみをペーストする方法ではありません。 満たしたい点は2つです。 ・表示している文字列のみを取得 ・複数のセルを同時にコピー 一つのセルに以下の文字列が入っていた場合(#以外) #123 #"abc" コピーするとクリップボードを文字列として取得すると以下の文字列が得られます #"123 #""abc""" これを以下の文字列が得られるようにしたいのです。 #123 #"abc" 1つのセルだけでいい場合は、セルを編集状態にしてコピーしたり アクティブセルの数式バーをコピーすればいいのですが、 これは当然、複数のセルを同時に選択する場合には使えません。 VBAを使う方法でもそうでなくてもかまいません。 (VBAの場合はコードもお願いしたいです) よろしくお願いします。

  • エクセル VBA ある条件でセルに色をつけたいのですが、

    エクセル VBA ある条件でセルに色をつけたいのですが、 例えば、A2からA50に文字列が入っていて、ある処理を終えると、空白を除くセルに薄い水色(33)をつけます。ここまでは、VBAで作成できました。 次に、空白を除くセルが、すべて薄い水色になったら、A1を薄い黄(36)にしたいのです。 教えてください。よろしくお願いします。

  • 【VBA】該当する文字列がある列を削除したい。

    指定した文字列を検索して、そのセルのある列削除したいです。 例えば2行目に、表の項目として「社名、フリガナ、住所、電話番号、備考、・・・」 と、あるときに、フリガナと電話番号の列を削除させたいのです。 シートによって項目の位置が若干変わる為、列番号を指定して削除するようなことは出来ません。 項目の名前が変わることはありません。 vbaでどのようにすればよいのでしょうか。 また、2行目の範囲で文字列を検索して、該当する文字列があるセルの位置情報を 取得したい場合はどうすれば良いでしょうか? 宜しくお願いします。

  • EXCEL VBAを使ってファイル内にある特定の文字すべてに色をつけたい

    おはようございます。 EXCEL VBAであるひとつのEXCELファイルの中のすべてのシートの特定の文字が入っているセルに色をつけるにはどのようなコードを使えばいいでしょうか? (例)田中 という文字列が入っているセルはすべてブルーの色がつくという感じです。 教えて下さい。 よろしくお願いします。

  • EXCEL VBAについて

    EXCEL VBAに詳しい方よろしくお願いいたします ユーザーからフォルダー指定してもらい そのフォルダー内に入っているすべてのブック、すべてのシートの検索、 (シート内にオートシェイプの中に文字を入れたものもアリ。検索対象。) そして、その検索にヒットしたシート名とブック名を別のテキストファイルに吐き出す。 それとは別に検索に引っかかった文字を青に置き換える(EXCELシート内)事は可能でしょうか? 文字の色は変わるのですがオートシェイプ内の色が変えられません。 何時間がんばりましたが、経験不足のためどうもうまくいきません。 どなたか親切な方、お教えいただけたら幸いです。

  • エクセル セル内の合計値に応じてセルの色を変えたい

         A      B        1    2    りんご2 2    4    りんご1,メロン3 3    3    メロン1,みかん1 上記のように,A列セルには数字が入っていて,B列セルには文字列と数字が入っています。 A1セルの値と,B1の文字列に含まれている数字は合致しているので,セルの色はそのままです。A2セルの値とB2の文字列に含まれている数字の合計が合致しているので,ここもセルの色はそのままです。しかし,A3セルとB3の文字列に含まれている数字の合計は合致していないので,B3セルに色を付けたいのです。 B列のセルは,1つのセル内に文字列と数字を入力することを前提に考えていますが,こうしたことは可能でしょうか?可能であれば教えていただけたら幸いです。