[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『条件付き書式の個数が多くフリーズする』(りき)
1人が5行の66列の条件付き書式。
60人分の条件付き書式を設定しようと思ったのですが、
(1人で330の条件付き書式。60人なので60x330=19,800の条件付き書式)
2人目の半分ぐらい(500程)でセルのコピーをしたらカーソルがぐるぐるしExcelが応答なしになってしまいます。
これは条件付き書式の個数が多いからフリーズ?
VBAで設定するしかないのでしょうか?
ご教授お願いいたします。
< 使用 Excel:Excel2013、使用 OS:unknown >
ルールの統合ができないかという観点から実態をお聞きしています。
質問だけに終わるかもしれませんが。
(γ) 2022/06/17(金) 19:59
=OR(($C7-2)=$AM$1, ($C7-1)=$AM$1,$C7=$AM$1) セル塗りつぶし1
=OR($C4="あ",$C4="い",$C4="う") セル塗りつぶし2
=$C4="え" セル塗りつぶし3
=$C4="お" セル塗りつぶし4
という感じで設定しています。
(りき) 2022/06/21(火) 09:25
範囲は当該セルのみです。
(りき) 2022/06/21(火) 14:17
>範囲は当該セルのみです。 回答者の質問分かっていますか。 範囲の意味わかっていますか。 (分からん) 2022/06/21(火) 16:37
C列自身の値、もしくはC列と[$AM$1]との関係が条件となるのはうかがえますが、 縦方向の位置関係が分からないですね。
たとえば「=$C4="お"」の「$C4」の「4」って、何処から見た「4」なのかが重要ですよね? 相対参照なんだから。
でもまぁ、状況を再現するのにはあんまり関係無いだろうと踏んで、 ちょっとこちらでも試してみました。
5行×100列の範囲に、ご提示のルール4つを追加。 その範囲を含めてメチャクチャな選択範囲をメチャクチャな場所にコピペして ルールを増殖していきました。
400行×150行くらいの範囲で Cells.FormatConditions.Countが8000を超えた辺りで 著しいメモリ消費の増加が現れ、動作が鈍くなってきましたね。
そんなもんでヘタってしまうものなのか...
(白茶) 2022/06/21(火) 17:02
で、 結局この数式だったら、そもそもルール「4つ」で済ませられるんでないの? とか思っちゃうんですけど...
データバーとか、各個人別にルールの適用範囲をグループ分けしないといけない訳でもないだろうし、 なんでまたわざわざ増殖させるのでしょうね...?
(白茶) 2022/06/21(火) 17:09
ちょっと私の用語の使い方が適切ではなかったですね。 「適用先」の範囲を教えてください、と書くべきでした。
適用先はできるだけ広い、統合したルールにすると効率がよいのではないかと思います。 また、不必要に行全体とか列全体とかにしないほうがよいでしょう。
私も実験してみました。 【(1)非効率的と思われる設定例(極端な例です)】
下記のレイアウトの 1で示した10000個のセルに その値が1のとき、特定の塗りつぶし色をつける条件付き書式を、 マクロで設定しました。
A列 B C D 999列 1 1 1 1 2 3 1 1 1 ・・ 999 1 1 1 1000
【参考】 Sub Macro1() Dim r As Range Dim j&, k& For j = 1 To 40 Step 2 For k = 1 To 1000 Step 2 Set r = Cells(j, k) r.FormatConditions.Add Type:=xlExpression, Formula1:="=" & r.Address(False, False) & "=1" r.FormatConditions(r.FormatConditions.Count).SetFirstPriority With r.FormatConditions(1).Interior .PatternColorIndex = xlAutomatic .Color = 49407 .TintAndShade = 0 End With r.FormatConditions(1).StopIfTrue = False Next Next Debug.Print ActiveSheet.Cells.FormatConditions.Count End Sub
【(2)統合したルールで設定する例】 A1:ALL40 の範囲を適用先として、 =AND(A1=1,MOD(ROW(),2)=1,MOD(COLUMN(),2)=1) という条件式で設定します。(該当セルは10,000セル)
【両者比較」 ・効果は両方で同じですが、 ・前者(1)は、動作が緩慢です。そもそも設定に時間がかかりますし、 設定後も、 例えば、「ルールの管理」でも表示に時間がかかります。 (待ちきれないので、取り消しました。) ・ファイルの大きさも(2)は(1)の1/10程度になります。
質問者さんのケースは、こう極端なことではないでしょうけど、 コピー貼り付けを繰り返したりして、類似の状況になっているのではないかと推測します。 ある程度、大容量のデータであれば、致し方が無い部分もありますが、 できるだけ効率的なルール設定に気を使われるとよいと思います。
(γ) 2022/06/21(火) 23:16
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.