• ベストアンサー

マクロで複数シートに条件付き書式をかける方法(excel)

以前、同内容の質問をしたのですがお答えいただけなかったので(泣) マクロで複数シートの書式を変更するものを作りたいのですが、罫線やフォントは変更できるのに条件付き書式だけは先頭シートにしか設定されません。1シートづつ設定するマクロを作るしかないのでしょうか?

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

  • ベストアンサー
  • shkwta
  • ベストアンサー率52% (966/1825)
回答No.1

For, Eachを使った例を示しますので、工夫してみてください。 Sub FmCdtn()   Dim sh As Worksheet   Dim fc As FormatCondition   For Each sh In Sheets     sh.Cells.FormatConditions.Delete     Set fc = sh.Cells.FormatConditions.Add(xlCellValue, xlEqual, 10)     fc.Interior.ColorIndex = 5   Next End Sub これを実行すると、すべてのシートで、値が10のセルが青色になります。

shobuike
質問者

お礼

うお!すばやい回答ありがとうございます。 早速試すとともにFor,Eachについて調べてみます。

その他の回答 (2)

  • hogehage
  • ベストアンサー率50% (54/107)
回答No.3

検証してみましたが、複数シートを同時に選択した場合は、おっしゃるとおりの動作になりますね。バグと言ってもいい様な気がしますね、、、 #1さんの様にForループで回すしかないようです。

shobuike
質問者

お礼

やはり…条件付き書式だけができないのが不自然な気がしたのですが。 検証していただきありがとうございます。自分がヌケているせいではないと解りすっきりしました。 #1さんの方向でやってみます。

  • matsu_jun
  • ベストアンサー率55% (146/265)
回答No.2

出来得ればお力になれたらと存じますが、具体的にどんなソースを書いたらどのような結果になったかが知りたいです。 個人的にはそのような状況なら横着して素直に1シートずつ設定してしまいそうですが、自分自身の向学のためにも是非ともご一緒に考えさせてください。

shobuike
質問者

補足

コードは会社のPCなので後日お見せできれば出します。恥ずかしながら私はマクロの記録を使って作ってちょこっと内容がわかるとこだけ修正する程度でして。 今回は 記録を開始する→シートを作業グループにくくる→ 書式の変更をする ですが、条件付き書式だけが先頭シートしか設定できないのです。

関連するQ&A