• ベストアンサー

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

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

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

  • ベストアンサー
  • kybo
  • ベストアンサー率53% (349/647)
回答No.1

以下でどうでしょうか? Sub macro() Dim C As Range, A As String, W As Worksheet For Each W In Worksheets Set C = W.Cells.Find(What:="田中", LookAt:=xlWhole) If Not C Is Nothing Then A = C.Address Do C.Interior.ColorIndex = 5 Set C = W.Cells.FindNext(C) Loop Until A = C.Address End If Next W End Sub

milomilo
質問者

お礼

ありがとうございます。ここまで教えていただけるとは思いませんでした。感謝致します。

その他の回答 (3)

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.4

(1)マクロの記録ぐらいとって勉強せよ(>セルに色をつけるにはどのようなコードになるか (2)ブックのシートを順次捉えるコード Googleで 「or each worksheets」で照会 http://park7.wakwak.com/~efc21/cgi-bin/exqalounge.cgi?print+200711/07110142.txt ほか多数 (3)シートの指定範囲のセルを順次捉えるコード ーー (2)+(3) Sub test01() Dim ws As Worksheet Dim cl As Range For Each ws In Worksheets MsgBox ws.Name For Each cl In ws.Range("A1:B2") MsgBox cl.Address Next Next End Sub をやってみて感じを掴む。 初心者はまず特定の文字と全セルの値を順次悉皆比較をやって見ること。 その後、ましな方法が無いかとなれば、Find,FindNextなど勉強のこと。 これも検索操作のマクロの記録で、ほぼわかるのだ。

  • end-u
  • ベストアンサー率79% (496/625)
回答No.3

もし『Excelのバージョンが2002以降のみ』であれば[置換]機能が使えます。 Sub test()   Const arg = "田中"   Dim ws As Worksheet   Application.ReplaceFormat.Interior.ColorIndex = 5   For Each ws In Worksheets     ws.UsedRange.Replace What:=arg, _                Replacement:=arg, _                LookAt:=xlPart, _                ReplaceFormat:=True   Next End Sub [置換]ウィンドウの[オプション]で書式の置換をする作業を[マクロの記録]すると参考になるでしょう。

  • Trick--o--
  • ベストアンサー率20% (413/2034)
回答No.2

条件が少ない(Excel2003以前なら3個以下)なら条件付書式で同じようなことができます。 VBAでやるなら…… Sub Macro1()  Dim r As Range  For Each r In Cells   If (条件1) Then    (処理1)   ElseIf(条件2) Then    (処理2)   ElseIf ……   Else    (処理n)   End If  Next End Sub で、全てのセルに対して条件判断ができると思います。 特定の文字が入っているかはInStrあたりで調べられるでしょう。 非効率なので参考程度に。

関連するQ&A

  • ExcelのVBAでアクティブシートの特定の文字列の入ったセルを全て選

    ExcelのVBAでアクティブシートの特定の文字列の入ったセルを全て選択し、文字をクリアしたいのですが、構文を教えて下さい。ちなみに、文字列というのは『jpg』です。 挿入した画像を一括削除する場合は、ActiveSheet.Shapes.SelectAll で全て選択できたのですが、文字列だとよくわかりませんでした。 Find("jpg")でやってみると最初の『jpg』だけが選択されてシート内の全てを選択できないので、全て選択・クリアできる方法を探しています。

  • エクセルvba初心者です・・・

    エクセルvba初心者です・・・ シート1にあるひとつのセルをコマンドボタンを押した時にそのセル内の文字列をシート2にかいていくようなプログラムをつくりたいです。 例えば シート1のセルに文字入力→”田中”→登録ボタンおす→シート2のセルA1にはいる シート1のセルに文字入力→”竹山”→登録ボタンおす→シート2のセルA2にはいる                  ・                  ・                  ・ というようになるコードわかる方いたら教えてください。おねがいします。

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

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

  • エクセルVBAで複数のファイルをひとつにまとめる

    はじめまして。 VBA初心者で恐縮なのですが、教えてください。   ブックAAAがあるフォルダ内に複数ある「***.xls」の全てのフイルのシート「A」内の特定のセル(A1:F30)の文字列を、全てブックAAAの1つのシートの特定の列(A:F)に重ねてまとめたいと思っています。 但し、シート「A」は非表示となっていて、また、「***.xls」のファイルは全て「ブックの保護」がかかっているため、シート「A」を表示させるためにはパスワードの入力が必要となります。 これをVBAを使って実行することは可能でしょうか。複雑で手に負えず行き詰っています。 どなたかご存知の方いらっしゃいましたらご教授願います。 エクセル2007を使用しております。  

  • エクセル VBA 特定の文字列

    エクセル VBA 特定の文字列 A列に、様々な文字列があるとします。 そのうち、りんごと書かれている行のみを別シートに書き出すマクロを教えてください。 お願い致します。

  • VBA 異なるファイルを指定して文字を抜き出す

    エクセルVBAについてご質問させて頂きます。 お詳しい方、ご教授頂ければ幸いです。 ファイルAを展開中に、別ファイルであるファイルB(ユーザ指定)の特定シートのセル「D2」及び「E2」から下のデータを順番に参照し、条件に合致する列のセル「B2」及び「C2」の文字列を繋げて改行し、 ファイルAの特定シートのセル「E2」から下に順番に貼り付けて行くには、 どのようにすれば良いでしょうか。 例   条件: D2=さ E2=た        ・ファイルB(指定) 特定シート        A    B    C    D    E    1    2   0    あ    か    さ    た    3   0    あ    き    さ    た    4   0    い    か    さ    ち    5   0    い    き    さ    た    6   0    う    か    し    た    7   0    え    か    し    ち    8   0    え    か    し    た    ・ファイルA特定シート       A    B    C    D    E    1                            2                      あ                           か    3                      あ                           き    4                      い                           き  実力不足で丸投げの形となってしまい申し訳ありませんが、 よろしくお願い致します。    

  • ExcelのVBAについて。

    ExcelのVBAについて。 画像のようなコードを利用してセルに入力時の日付時間を自動的に付加させたいのですが、、 VBA初心者な為に上手くいきません。 コード自体はサイトのを切り貼りして使えるのですが、これ以上の応用例に行き着けません。目的としては、データベース的に、あと入力数値から特定文字を抜き出して変数を当て嵌め文字列の語呂を当てます。様式はまだ作成中ですが、ある種の図表化してプリントアウトまでしたいと思っています。 何が上手くいかないか、まず自動的に付加させる所は何となく出来ているので、これをシート1とした場合に、シート2に図表化した転記内容を構成し、、シート1入力、シート2表示、またシート1A3セルに戻るというコードにしたいです。 この記述は不味いとかこうこうああした方が良いというアドバイスや指摘をお願いします。 よろしくお願いします。

  • VBAを使い、同一フォルダにあるファイルの特定のシートの情報を取得したい

    はじめまして。 書籍や過去の質問等を調べましたが、類似するものを見つけられなかったため質問させていただきます。 Xというエクセルファイルで、Xと同一フォルダ内にある、ファイル名に特定の文字列(例えば「月報」)を含んだ全てのエクセルファイルの、特定の文字列(例えば「○年○月」)を含んだ全シートの、一定のセル範囲をひとつのシートにまとめたいと思っています。 X内のコマンドボタンで動かす予定ですが、複数のボタンになると自分では思っています(ボタンAでファイル名の取得、ボタンBでシートの取得、ボタンCでセルに貼り付け、みたいな感じで。ボタンの数は特に制限はないです) 要点としては a, 定定の文字列を含んだファイル名の取得 b, aで取得したファイル内の特定の文字列を含んだ全てのシート内の一定のセル範囲の取得(シートの数はファイルによる。必ずしも1つというわけではない。) c. bで取得した一定のセル範囲のデータを、1つのシートにまとめる。 あとはこれらのデータをtxtやcsvなどに出力できるようにするつもりです。 私がやってできたのは、同一フォルダ内にあるファイル名に特定の文字列を含むファイルの全てのファイル名を指定したセルに吐き出すことしかできませんでした。 なんか、ややこしい表現かもしれませんが、ご指導お願いします。 環境はxp、エクセル2003です。 よろしくお願いします。

  • エクセルVBAで文字列変換

    エクセル2010でVBAを書いています。 シートの中のセルを全ての書式を文字列に変換するのはどうすればよいでしょうか。 ボタンをクリックした時にシート内のセルが全て文字列型に変換するという動きにしたいです。 解決法などありますでしょうか。 よろしくお願いします。

  • Excel で特定の文字を取り出してその文字だけをコピーする方法

    VBAや関数に詳しくないので、というよりもExcelにあまり詳しくないので、とりあえずこうすればできるという方法を具体的に教えていただければと思います。 やりたいことは2つあります。内容はそれぞれこんな感じです。 (1) セルA1に”・・・・・・・○”  (・は任意の文字とします。)   セルA2に”・・・・・・・×”  (抽出したい文字は最後に来ます。) とあったとしたら セルB1に”○” セルB2に”×” というふうに特定の文字をコピーする。 それらの文字が含まれていなかったり、あってもそれが最後でなければ何もしません。 (2) (1)で作ったシートを他のシートにコピーしたとして、そのシートには列2に特定の文字○、×などが入っています(空欄の場合もあります。)。この中から列2の内容が×の行を削除します。 Officeについては詳しくありませんが C、C++やJavaなどは使っていたのでスクリプトについては読んでいるうちに慣れると思うのですが、肝心のExcelを使いこなしていないのでこれをマクロで保存した方がいいのか関数にしたほうがいいのかということもはっきりしていないレベルですのでその辺も交えて教えていただけるとありがたいです。 本来であれば自分である程度の勉強をしなければいけないのはわかっているのですが、急ぎということでよろしくお願いします。

専門家に質問してみよう