- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Excel VBA 全てのセルを読み込み、背景色で判断)
Excel VBAで全てのセルを読み込み、背景色で判断する方法
このQ&Aのポイント
- VBA初心者のため、WindowsXPとExcel2003の環境で、1~3のシートの全てのセルを読み込んで、背景色が赤色のセルの文字をシート4にコピペしたいです。結合セルは、最初のH列として扱い、コピペする際には、赤色のセルから上に上がって、最初の空白のあるセルの下3行も一緒にコピペします。
- ほとんどのセルは文字と数字で埋まっているため、空白セルを条件にして組むことができると考えています。最終的なシート4のイメージは、赤色のセルの内容を表示し、シート1とシート2で繰り返しています。
- VBAに詳しい方、WindowsXPとExcel2003の環境で、1~3のシートの全てのセルを読み込んで、背景色が赤色のセルの文字をシート4にコピペし、さらに上に上がって最初の空白のあるセルの下3行も一緒にコピペする方法について教えてください。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
カナリの初心者は普通、組まれたものも読めませんよ。 全てのセルって 16777216個もあります。 たぶん一個ずつ色を調べるって話では無いと思いますが、条件があまりに不透明です。 参考程度にサンプルを書きましたので、希望に近いようなら修正してお使い下さい。 A列を1行目から調べて、最初に見つけた背景が赤いセル(ColorIndex = 3)を含む行、および、その上方の空白セルから下3行をコピー状態にします。 Sub Test() Dim i As Long, r As Range With Worksheets("Sheet1") For i = 1 To .Range("A65536").End(xlUp).Row If .Range("A" & i).Interior.ColorIndex = 3 Then Set r = .Range("A" & i).EntireRow Set r = Union(r, r.End(xlUp).Resize(3).EntireRow) End If Next i End With If Not r Is Nothing Then r.Copy End Sub
お礼
非常に助かりました。 ありがとうございましたm( _ _ )m
補足
助かります。ありがとうございます。 質問なのですが、 >A列を1行目から調べて、最初に見つけた背景が赤いセル(ColorIndex = 3)を含む行、および、その上方の空白セルから下3行をコピー状態にします。 【質問1】 最初に見つけた背景が赤いセルだけでなく、 背景が赤いセルに関しては、同じように対象としたいのですが、 どのようにすれば宜しいでしょうか。 【質問2】 >A列を1行目から調べて、最初に見つけた背景が赤いセル >(ColorIndex = 3)を含む行、および、その上方の空白セルから >下3行をコピー状態にします。 これを A列を1行目から調べて、見つけた背景が赤いセル(全て)をコピーし、 その際、その上方の空白セルから下3行(背景が赤いセルは含まない)もコピー状態にする。 としたいのですが、どのようにすれば宜しいでしょうか。 背景色が赤いセルとあわせてコピペしたいのはタイトル行となっている 3行で、背景色が赤いセルのかなり上方にあるため、このようにしています。 よろしくお願い致します。