• 締切済み

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

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

みんなの回答

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答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