- ベストアンサー
マクロで複数シートに条件付き書式をかける方法(excel)
以前、同内容の質問をしたのですがお答えいただけなかったので(泣) マクロで複数シートの書式を変更するものを作りたいのですが、罫線やフォントは変更できるのに条件付き書式だけは先頭シートにしか設定されません。1シートづつ設定するマクロを作るしかないのでしょうか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
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のセルが青色になります。
その他の回答 (2)
- hogehage
- ベストアンサー率50% (54/107)
検証してみましたが、複数シートを同時に選択した場合は、おっしゃるとおりの動作になりますね。バグと言ってもいい様な気がしますね、、、 #1さんの様にForループで回すしかないようです。
お礼
やはり…条件付き書式だけができないのが不自然な気がしたのですが。 検証していただきありがとうございます。自分がヌケているせいではないと解りすっきりしました。 #1さんの方向でやってみます。
- matsu_jun
- ベストアンサー率55% (146/265)
出来得ればお力になれたらと存じますが、具体的にどんなソースを書いたらどのような結果になったかが知りたいです。 個人的にはそのような状況なら横着して素直に1シートずつ設定してしまいそうですが、自分自身の向学のためにも是非ともご一緒に考えさせてください。
補足
コードは会社のPCなので後日お見せできれば出します。恥ずかしながら私はマクロの記録を使って作ってちょこっと内容がわかるとこだけ修正する程度でして。 今回は 記録を開始する→シートを作業グループにくくる→ 書式の変更をする ですが、条件付き書式だけが先頭シートしか設定できないのです。
お礼
うお!すばやい回答ありがとうございます。 早速試すとともにFor,Eachについて調べてみます。