• 締切済み

エクセル マクロ 特定の背景色を別の背景色に変える

エクセル マクロ・VBA初心者です。 該当のシートにおいて特定の背景色をすべて別の背景色に変えるには、 どのようにすればよろしいでしょうか。 ご教示お願いします。

みんなの回答

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

セルの特定の背景色を指定して、該当セルを列挙してもらうのは、 書式を指定して該当セルを探す「検索」で、できなければ、そのほかには 方法がないと思う。 それ以外にはFor Eachで、指定範囲のセル範囲を1つづつ該当するか判定していく方法は残されているが。 その「塗りつぶし色」の書式を指定しての検索だが、やってみると、手操作でできるようだ(エクセル2013)。 そして別の塗りつぶし色への該当分の一括置換もできる。 VBAを希望なら、大枠のシートセルの範囲指定して、上記の操作をして マクロの記録を取れば仕舞い。 まずここに質問をする前に、似たようなメニュー(この質問の場合は検索や置換)でできないかやってみるべきだよ(文字列・数字ならできるのは常識だろう)。 今後VBAをやるなら、手操作でできる、いろいろなエクセルの機能に、日ごろからアンテナを張っておくべきと思ったケース。

  • mt2015
  • ベストアンサー率49% (258/524)
回答No.1

一括でポンと変更する方法は無いと思います。 以下の様に検索して色替えをしていく方法しか思いつきませんでした。 Sub test()   Dim rArea, rOne As Range   Dim nFCol, nTCol      nFCol = vbYellow '変更前の色   nTCol = vbRed '変更後の色   With Application.FindFormat     .Clear     .Interior.Color = nFCol     .FormulaHidden = False          Set rArea = ActiveSheet.UsedRange 'アクティブシートが対象     Do       Set rOne = rArea.Find(What:="", SearchFormat:=True)       If Not rOne Is Nothing Then         rOne.Interior.Color = nTCol       End If     Loop While Not rOne Is Nothing     .Clear   End With End Sub

関連するQ&A

  • 別のアプリケーションとエクセルマクロについて

    エクセルとは別のアプリケーションのデータの文字をコピーして エクセルのシートのある決まった位置に張り付ける、ということを 簡単に行いたいのですが、(マクロ的にボタン一つとか) どういった方法がありますか? エクセルのVBAマクロは作っていますが、 別のアプリからデータをコピーして持ってくるというのは、できないですよね。 (csvとかに落とすこともできないデータです。) 別のアプリの文字をコピーする段階で、VBAでは無理だと思うので、 他のプログラム言語だと、そういうことができますか? C言語は少し習いましたが、何か最適な方法や、 このプログラム言語だと、簡単にできるというのがあれば、教えてください。 よろしくお願いいたします。

  • Excel 2003のVBAマクロデータをExcel 2007で見たい

    Excel 2003のVBAマクロデータをExcel 2007で見たい。 Excel 2003でVBAマクロを登録したExcelファイルがありますが、今回、Excel 2007をインストールして、該当ファイルを開いたところ、「マクロデータを削除しました。」とメッセージが出て、VBEを起動してもマクロが見えなくなりました。OSはWindowsXP SP3です。Excel 2003で登録したVBAマクロをExcel 2007で削除されないで、次の2点について、可能にするにはどうすればよいか、ご教示願います。 (1)マクロデータを残す方法。 (2)マクロ起動する方法。

  • エクセル マクロ一覧

    開いているブックにあるマクロの一覧を作れないものでしょうか? モジュール、シート、ユーザーフォーム内にあるマクロすべてです。 VBAのチェックシートとして使いたいのですが エクセルバージョンは2003です

  • A2からA16までの足し算マクロ

    エクセルVBA初心者です。 初心者のため、うまく質問できるか分かりませんが、よろしくお願いします。 タイトルのように A2からA16に入っている値を全て足して、その値を別シートのB2セルに書き出す、というマクロを教えてほしいんです。 別シートに書き出すマクロは分かるのですが、足し算が分からないんです。 A2+A3+・・・ とやってもいいんでしょうけど、凄く大量で1つ1つ書けないんです。 まとめて、ここからここまで全部足す!みたいなマクロはないでしょうか><; 大雑把な質問ですみません・・・ アドバイスよろしくお願いします。

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

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

  • VBAでマクロを使って、マクロ無効のエクセルシートとして名前を付けて保

    VBAでマクロを使って、マクロ無効のエクセルシートとして名前を付けて保存ってできますか?? FileFilter:="エクセルファイル(*.xlsx),*.xlsx" として保存すると、保存はできるのですが、開くことができません。 VBA初心者です。よろしくお願いします。

  • EXCELマクロで質問 起動と同時にマクロ実行って・・・・

    こんばんは。 起動と同時にEXCELマクロを走らせたいのですが、 できますでしょうか? 特定のシートに適応するマクロではなく、 すべてのシートに適応するマクロです。

  • エクセルのマクロでアクティブシートをhtml保存

    エクセルのマクロを使って、アクティブシートのみをhtml形式に保存したいと考えています。  ActiveSheet.SaveAs Filename:="ファイルパス", FileFormat:=xlHtml  でhtmlに保存するところまではできたのですが、すべてのシートが出力されてしまいます。 アクティブなシート、あるいは特定のシートのみをhtml形式で保存する方法があればご教示ください。

  • エクセルマクロ

    エクセルマクロ初心者です。宜しくお願いします。  |A| B | C | D | E No1|1|Tim | 170 | 98 | 30   |2|Dan | 181 | 90 | 32   | |   | | | No2|1|Tim | 170 | 98 | 30   | |   | | | No3|1|Tim | 170 | 98 | 30   |2|Dan | 181 | 90 | 32   |3|Tom | 181 | 90 | 32   | |   | | | まず上のような、データがSheet1にあります。 この中で、初めに文字列検索を行う。(No1~No3のどれか) 次に、No1を検索した場合はNo1の項目欄にあるすべての データを、Sheet2(別のシート)内に作成した フォーマット内に抜き出す。 このようなマクロを組みたいのですが、知識不足の為 わかりません。 宜しければご教示下さい。

  • 複数のEXCELファイルより一部の行を自動でマージするマクロ

    「(1)複数のEXCELファイル」より、「(2)特定のシート」の中のさらに「(3)特定の行」をコピーし、あるEXCELファイルの1シートに挿入していくマクロ(VBA)か、ソフトが掲載されているサイト、もしくは、やりかたを教えてください。 1.EXCELは、2003 2.「(1)複数のEXCELファイル」は、一つのフォルダにあり、データ形式は一緒。  そのフォルダにはEXCELファイルしか置きません。 3.「(2)特定のシート」について、シート名はどれも一部のみ一致します。  または位置(順番)は一緒です。 4.「(3)特定の行」はどのファイルも作りが一緒です。 VBA初心者ですが、ヒントをいただければ頑張りたいと考えています。