• ベストアンサー

エクセルでセルの色を条件に使いたい

エクセルの表のなかに、たくさん色分けをしているのですが、 その色分けの色を変更したいと思っています。 ・今赤で塗っているところを緑に、今黄色または黒で塗っているところを青にという ふうに、複数の変更をしたいのですが、どうしたらよいでしょうか。 教えてください。

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

  • ベストアンサー
  • ARC
  • ベストアンサー率46% (643/1383)
回答No.3

Excelには色を置換する機能はありません。(多分) どうしても置換したかったら、マクロを組むしかないと思います。 ↓面白そうだったので、作ってみました。(テストに時間かけてないのでバグありかもしれません。) Public Sub SelectSameColorCells()   Dim SrchColor As Long   Dim ReplaceColor As Long   Dim SearchArea As Range   Dim V As Variant   Dim Ret As String   '検索する色を取得する   Ret = InputBox("検索する色、もしくは、検索する色が設定されたセルのアドレスを指定してください。" & vbNewLine _           & "例:255 (10進数で指定する場合)" & vbNewLine _           & "例:&H0000FF (16進数で指定する場合)" & vbNewLine _           & "例:A1 (セルのアドレスで指定する場合)" & vbNewLine & vbNewLine _           & "注:色の並びはBGRの順。&H0000FF=赤, &HFF0000=青。")   Ret = Trim$(Ret)   If IsNumeric(Ret) Then     SrchColor = Val(Ret)   Else     SrchColor = Range(Ret).Interior.Color   End If   '置換後の色を取得する   Ret = InputBox("置換後の色、もしくは、置換後の色が設定されたセルのアドレスを指定してください。" & vbNewLine _           & "例:65536 (10進数で指定する場合)" & vbNewLine _           & "例:&H00FF00 (16進数で指定する場合)" & vbNewLine _           & "例:A1 (セルのアドレスで指定する場合)" & vbNewLine & vbNewLine _           & "注:色の並びはBGRの順。&H0000FF=赤, &HFF0000=青。")   Ret = Trim$(Ret)   If IsNumeric(Ret) Then     ReplaceColor = Val(Ret)   Else     ReplaceColor = Range(Ret).Interior.Color   End If   '検索対象となる範囲を取得する   Ret = InputBox("検索の対象となる範囲を指定してください。 例:A1:Z100")   Ret = Trim$(Ret)   Set SearchArea = Range(Ret)      '同じ色のセルを検索し、色を変更する   For Each V In SearchArea     If V.Interior.Color = SrchColor Then       V.Interior.Color = ReplaceColor     End If   Next End Sub

etty
質問者

お礼

どうもありがとうございました。 こんな難しいことをしなくてはいけないのですね。。 いろいろ考えた挙げ句、手でやっちゃいました。 でも、勉強になりました。ありがとうございました。

その他の回答 (2)

  • Naka
  • ベストアンサー率44% (527/1181)
回答No.2

◆それまで何によって色分けをしていたのか、というのはバラバラなのでしょうか?? 通常、何らかの条件(曜日、計算結果など)によって色分けしていると思うのですが、その数式や値によって、「条件付き書式」を用いてはどうでしょうか?? そんなところしか、思い浮かびませんが。m(_ _)m

  • y45u
  • ベストアンサー率27% (140/516)
回答No.1

私もこの回答が知りたい! こういう事を仕事でちょくちょくやるのですが、手作業でコントロールキーを押しながら同色を選んで一括変換しか思いつかなくて・・・膨大な量になるとしんどいんですよねえ。