• ベストアンサー

マクロで複数シートに条件付き書式をかける方法(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

  • Excel2010 2007の条件付き書式

    Excelの条件付き書式についてお伺いします。 Excel2010 と Excel2007で 以下の書式を設定した際に表示される結果が異なります。 ・A1セルに下罫線を設定 ・A2セルに条件付き書式で空白(Empty)なら上罫線"なし"を設定 Excel2007の場合、上記設定によりA1セルに下罫線が表示されますが Excel2010の場合、下罫線なしで表示されませんでした。 Excel2010では隣接するセルの罫線設定より 条件付き書式での罫線なしが優先されている様なのですが、 そのような仕様変更をヘルプ、MSのページなどで探したのですが 見つけることができませんでした。 上記仕様変更が明記されている箇所(ヘルプやページ等)を ご存じないでしょうか。 以上、ご教示の程何卒宜しくお願い申し上げます。

  • EXCEL2007でセルの書式設定ができません。

    いつも対象のセルを選んでから、右クリックでセルの書式設定を選び、罫線やフォントの種類を変更しているのですが、今作っているブックでは右クリックをしてもセルの書式設定が選べません。 このブックは、仕事で使っているもので、様式が決まっており、ある人が作ったシートに私が文字を入力していくようになっているものです。 きっとこのブックを作った人が何か指定をして私が勝手に罫線なんかを変更できないようにしているのだと思うのですが、他のワークシートからデーターをコピーして貼り付けて使おうと思っているので、変更したいんです。 コピーして使おうと思っているワークシートは罫線とかフォントが違うので、変更しないといけないんです。 初歩の質問かもしれませんが、どうしたらいいか教えてください。

  • Excel2007 条件付き書式が付いているシート

    条件付き書式を使用しているシートをコピー(シートのコピーすると)並びが変わってしまします。 Book全体で条件付き書式を統一していますが、コピーするとなぜか並びが変わって優先順位が変更されてしまいます。 シートのコピーをすると各種書式も引っぱって行ってもらえると思ったのですが、どうも違うようで、コピーした都度、そのシートだけ条件付き書式の並びだけを変更しております。 どなたかよい方法があれば教えてください。 これって、マイクロソフトのもともとの仕様なのかわかりません。  

  • Excel:書式を残しながら条件付き書式を消す方法

    こんにちは。 Excel2007を使って作業をしています。 エクセル2007を使って莫大なデータに書式を設定する必要があるため、 条件付き書式設定を頻繁に使っています。 Excel2003を使っている人にファイルを渡す必要がある場合に、 複雑な条件付き書式設定をつけたままファイルを送れないため、 困っています。また、条件付き書式はデータ容量も重くなるので 最終データは条件を全部消したいなぁって常々思っています。 (条件を解除すると全部の書式が消えてしまいますよね・・・) 同様の質問が2006年にあったことは調べてはいるんですが、 そちらのご回答ではうまく作動できないため、改めて「書式を残したまま条件付き書式をクリアする」 マクロをどなたかご教示いただけないでしょうか?? (本来は私が毎回書式をマクロで設定できればよいのですが。。。すみません) 「数式を指定して書式設定をするセルを決定」を使い、 「枠線」「セルの色」「文字の色」を指定しています。 お手数をおかけしますが、どなたかマクロに詳しい方お願いいたします!

  • Excel2007条件付書式でフォントを変更したい

    条件付書式の設定でフォントが変更出来ないことは分かったのですが、ExcelのVBで条件付書式が一致したときにフォントを変えるにはどうすれば良いのでしょうか? 本来なら条件付書式でフォントを設定出来ても良さそうですけどね

  • 【Excel】条件付書式について

    Excel2003を使用しています。 ある特定の値(文字列)が入力されたら、同行のある範囲のフォントを白にしたいのですが、条件付書式でできるのでしょうか? (条件付書式はあまり使用したことがなく、条件の設定の仕方がイマイチわかりません。。。) 例えば、O1に○と入力されたら、B1:N1のフォントの色を白にしたいです。B1:N1のデータは他で使用しますが、プリントアウトする際(見た目)には表示させたくないので… 条件付書式では不可能ならば、関数やマクロでも構いません。 マクロについては初心者ですので、参考までにコードを書いていただけると大変助かります。 よろしくお願いします。

  • 【EXCEL】複数シートの条件付き書式一括クリア

    EXCELの条件付き書式を複数シートにコピーしたところ、 コピー先のセルに元々適用されていた条件付き書式ルールに上書きではなく、 コピーしたルールが追加された形になってしまいました。 例)  ※コピー先に元々設定されていたルール   (1)上位1位のセルをピンクで塗りつぶし+赤太字にする   (2)上位3位のセルを水色で塗りつぶし+青太字にする   ↓  ※新規条件付き書式コピー後   (1)上位1位のセルを黄色で塗りつぶし(コピーしたルール)   (2)上位5位の赤太字にする(コピーしたルール)   (3)上位1位のセルをピンクで塗りつぶし+赤太字にする(元々設定されていたルール)   (4)上位3位のセルを水色で塗りつぶし+青太字にする(元々設定されていたルール) のような感じです。 必要なのは新規でコピーしたルールのみなのですが、 複数シートの条件付き書式を一括でクリアできる方法はないでしょうか? ご教授よろしくお願いします。

  • Excel2007 条件付き書式について

    過去の質問事項も確認しましたが、一致する内容がありません でしたので、質問をさせて頂きます。 使用しているOS:WinXP Pro SP3 Excel2007の条件付き書式ですが、条件を満たした場合、即座に 書式が反映しないのは何故でしょうか?シートを開き直したり、 プリントプレビューなど、画面を一度別のものに変えると設定 した書式が反映されます。 具体例 条件付き書式の設定は、セルA1が○の場合、B1~20が赤の塗つぶ しになる。(式:=$A$1="○"、書式設定:赤の塗つぶし/B1~20) ・セルA1に○と入力してEnterキーを押した場合  ⇒セルB1~20の状況:設定した書式が反映されない。 ・プリントプレビューなど別画面に切り替えて、元のシートを  開いた場合  ⇒セルB1~20の状況:設定した書式が反映される。 この該当するExcelファイルの容量が大きい(4Mくらいある)の で、処理が遅くなって発生している問題なのでしょうか? ちなみに、新しいBookで同様の設定を行うと、きちんと書式の 設定が反映されます。 どうかご教授お願い致します。

  • Excel2013の条件付き書式で、条件設定方法

    Excel2003からExcel2013に変更したのですが、条件付き書式中の条件1、条件2、条件3など、複数の数式を設定したいのですがExcel2013での設定方法が分からないのでお教えください。また、このような条件下で数式がtrueのときに文字を変色したいのですが設定方法がよく分かりません。参考になるweb等があればお教えください。よろしくお願いいたします。

  • Excel2003 VBAにて条件付き書式のマクロを書きたいのですが、

    Excel2003 VBAにて条件付き書式のマクロを書きたいのですが、どうも上手くいきません。 1列おき(C列、E列、G列・・・)に条件付き書式を設定し、 条件は、 ・セルの値が”0”より大きい場合はフォント”赤”で表示。 ・セルの値が”0”より小さい場合はフォント”緑”で表示。 としたいと思いマクロを組んでみました。 Sub Color() Dim j, j0 Dim x Worksheets("sheet1").Active Application.ScreenUpdating = False j0 = 3 j = 300 For x = 3 To 100 Step 2 Range(.Cells(j0, x), .Cells(j, x)).Select Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlGreater, _ Formula1:="0" Selection.FormatConditions(1).Font.ColorIndex = 3 Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlLess, _ Formula1:="0" Selection.FormatConditions(2).Font.ColorIndex = 10 Next Application.ScreenUpdating = True End Sub デバックでステップインしていくと、ここで実行時エラー1004 アプリケーション定義またはオブジェクト定義のエラーです。がでます。 Selection.FormatConditions(1).Font.ColorIndex = 3 -------------------------------------------------------------------------------------- Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlGreater, _ Formula1:="0" Selection.FormatConditions(1).Font.ColorIndex = 3 Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlLess, _ Formula1:="0" Selection.FormatConditions(2).Font.ColorIndex = 10 -------------------------------------------------------------------------------------- この間は、マクロの自動記録で書かれてるので間違ってはいないハズなのですが、、、 お知恵を下さい。 よろしくお願いします。

専門家に質問してみよう