| ■No97715 (工場プログラマー さん) に返信 > いろいろやってみたんですけど1列ずつ調べることしかできなくて、、
残念ながら、一つずつ調べていくしか無いと思います。
セル値に対する判定処理であれば、データ構造上比較的容易に処理できますが、 セル色に対する判定処理は一括で行えません。ワークブックを作る際には 「色」を識別用途にはせず、セル値として作りこんだ方がプログラム的には処理しやすいです。
■No97719 (工場プログラマー さん) に返信 > 指定行の黄色は残したまま指定行A列のセルを赤色に変更(11行目に黄色が4つあったらA11を赤にする)
A 列が黄色だったらどうするんだろう…という思いや、 列数の上限なし(16384列目まで)なのかといった疑問はありますが、それはさておき。
セルの色といっても、「パターンの色」「塗りつぶしの背景色」「文字色」「各罫線の色」などが ありますが、今回は背景色でしょうか。
条件付き書式による色変化も考慮するとなれば、使用するのは必然的に .DisplayFormat.Interior.Color プロパティ (あるいは同 ColorIndex) になるでしょう。
条件付き書式を使っていない場合は GET.CELL(63, セル) マクロという選択肢もありますが、 大量に使うとメモリ不足で動かなくなるので実質的に使えないと思います。
そして Interior オブジェクトにせよ GET.CELL マクロにせよ、 複数のセル範囲を一括して処理することはできません。
処理速度が懸念されますが、ループ処理で一つずつ見ていくしか無いと思いますよ。
No97717 の furu さんの方法ならかなり楽にはなりそうですが、それでも ・行数上限は 1,048,576 だが、列数上限は 16,384 のため、回転しきれないケースもある ・元の行数(回転後の列数)分だけ、フィルターの切り替えが必要 という制限はありますね。 |