• ベストアンサー

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

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

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

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

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

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (5)

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

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

oshiete0224
質問者

お礼

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

全文を見る
すると、全ての回答が全文表示されます。
  • kmetu
  • ベストアンサー率41% (562/1346)
回答No.4

追加その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 としてください。

全文を見る
すると、全ての回答が全文表示されます。
  • kmetu
  • ベストアンサー率41% (562/1346)
回答No.3

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

全文を見る
すると、全ての回答が全文表示されます。
  • kmetu
  • ベストアンサー率41% (562/1346)
回答No.2

画像が見難いのでどこに何があるのか分かりませんが 以下のコードは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

全文を見る
すると、全ての回答が全文表示されます。
  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.1

こんばんは! 画像が小さくて詳細が判りません。 質問文だけで判断し、「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

oshiete0224
質問者

お礼

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

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

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

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

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

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

  • エクセルVBAでセルに色を付けるには

    エクセル2010の質問です。 例えばA列に入力した文字のバイト数が38より多い場合、セルに色を付けたいのです。 条件付き書式で =LENB($A2:$A1048576)>38 でもよかったのですが シート内のデータをクリアすると条件付き書式までクリアされてしまい困っています。 VBAで出来るのが一番なのかなと思っていますが、ご教授お願い致します。

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

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

  • エクセルVBAでセル結合

    いつもお世話になっています。 エクセル2003でVBAを使って下記をしたいのでその、VBA構文を教えて下さい。 特定の列のあるセルに文字が入っています。 (文字が入っている列は固定ですが、行番号はデータによって変わります。例えば、Aデータの場合は「J30」、Bデータの場合は、「J55」だったりします。) この文字が入っているセルをVBAで検索し、検索したセルを右隣のセルと結合します。(先ほどのAデータの場合、J30:Z30に結合します。) 更に、文字が入っているセルが2以上の複数の場合があります。(先ほどのAデータの場合、「J30」と「J40」と「J45」という感じです。文字が入っているセルの数はデータにより異なります。) 結合が終わり、このシートのデータがあるところだけに罫線を引きます。(このシートのデータというのは、前述の文字とそれ以外は、「数字」と「・」です。 ややこしいですが、よろしくお願いします。

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

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

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

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

  • エクセルで一つのセルに数式を二つ以上入力する方法はありますか?

    エクセルで一つのセルに数式を二つ以上入力する方法はありますか? 昨晩から プルダウンメニューで ある文字列を選び、その文字列により、違った計算をさせて、その答えをセルに表示させようとしていますが、全く上手くいきません・・・。 Sheet1の任意のセルに ABC, DEF, GHI, JKL と言う文字列を作り、プルダウンメニューで選べる様にしました。 そして、選んだ文字列により、下記の通り 切捨ての簡単な計算をさせて、その答えを Sheet2 の任意のセルに表示させたいと思ってます。 Sheet2の任意のセルにこの様な数式を教えて頂きまして入力しましたが、上手く行きませんでした。 =IF(F3="ABC", ROUNDDOWN(H3,2)*0.976),"DEF",ROUNDDOWN(H3,2)*0.976),"GHI", ROUNDDOWN(H3,2)*0.975), "JKL", ROUNDDOWN(H3,2)*0.978) 何かと試行錯誤してますが、全く分りません・・・(>_<)。 どなたか助けて下さい(/_;)

  • エクセルでセルの色の数

     エクセルでセルの数の計算についてお聞きします。 条件書式でセルの色分けをしました。数の合計、文字の個数などの数式はできるのですが、セルの色の個数は数えることができるのでしょうか。もし、できるのであれば、その数式を教えてください。  例えば、Aの列には、白‥3 赤‥2というようにセルの色の個数を表示します。  今までそんな発想がなく使ってきませんでした。教えていただけるとありがたいです。よろしくお願いいたします。

  • Excel VBAでセルの整列

    Excel VBAでセルの整列 現在、VBAを勉強中の者です。 最近、勉強を始めたばかりですが、この前何とかVBAを用いてセルの塗り潰しが出来る様になりました。 そこで、今度は色が塗り潰されたセルを添付した画像のように整列したいと考えていますが、どんな風にすれば良いのか見当がつきません。 誰か、教えてください。 やりたい事は、A列に結合されているセルがいくつか存在していて、B列を挟んでC列にA列に関連する文字が入力されています。 そして、C列には予めセルが塗り潰されている箇所がありますが、今回、C列において塗り潰されているセルのみを、結合されているセルの最終行に移動させたいのです。

ワイパーエラーについての相談
このQ&Aのポイント
  • ワイパーエラーについて相談します。購入した製品を操作ミスでワイパーが痛んでしまい、頻繁にワイパーエラーが表示されます。対処方法を教えてください。
  • 【PR1055X】という製品でワイパーエラーに困っています。購入直後に操作ミスによりワイパーが痛んでしまい、頻繁にワイパーエラーが表示されます。どのような対処方法がありますか?
  • 購入した【PR1055X】という製品でワイパーエラーが頻繁に発生します。操作ミスによりワイパーが痛んでしまったようです。ワイパーエラーの対処方法を教えてください。
回答を見る

専門家に質問してみよう