アプリ版:「スタンプのみでお礼する」機能のリリースについて

任意の行を見やすくするために背景色を塗りつぶしてあります。

その塗りつぶされている行だけ、集計対象としてフラグを立てたいのですが、1シートのレコード数も大量なのでマクロでやりたいと思っています。

背景色の指定されている行は、「集計対象」という名前の別のセルに「1」とフラグを立てる方法を教えて下さい。

宜しくお願いします。

A 回答 (3件)

>1色だけの場合は教えていただいた方法で思い通りの結果を得られました



そういうマクロではありませんが、まぁどのみち


>色は、赤、青、黄色の3色で、D列で判断できます

エクセル2010は沢山の色が使えるので、あなたが言ってる赤青黄色が具体的にどの色なのか、ご自分で調べて正しくマクロに反映しないといけません。

とりあえず動くやり方を回答しておくので、あとはご自分で適切に応用してください。だらだら実は実はといつまでも付き合ってと言われても、困りますので。


手順:
A1セルにあなたの赤を塗る
B1セルにあなたの青を塗る
C1セルにあなたの黄色を塗る

sub macro2()
 dim r as long
 for r = 2 to cells(rows.count, "D").end(xlup).row
  if cells(r, "D").interior.colorindex <> xlnone then
   cells(r, "U") = iif(cells(r, "D").interior.color = range("A1").interior.color, 1, "")
   cells(r, "V") = iif(cells(r, "D").interior.color = range("B1").interior.color, 1, "")
   cells(r, "W") = iif(cells(r, "D").interior.color = range("C1").interior.color, 1, "")
  end if
 next r
end sub
    • good
    • 1
この回答へのお礼

ありがとうございました。
お蔭様で結果を得ることができました。

だらだらと質問してすみませんでした。

お礼日時:2014/03/27 08:47

こんばんは!



>任意の行を見やすくするために背景色を塗りつぶしてあります
>1シートのレコード数も大量なので・・・

というコトですので、Excel2007以降のバージョンだという条件ですが、「色フィルタ」でやってみました。
(A列には必ず色がついているとします)

前提条件として塗りつぶしは同じ色だとします。
尚、何色に塗りつぶされているのか判らないので最初にヒットしたセルの色でフィルタをかけています。
1行目が項目行でデータは2行目以降にあり、
1行目項目の「集計対象」の列に「1」を表示するようにしてみました。

Sub Sample1()
Dim i As Long, j As Long, lastRow As Long, c As Range, r As Range, myColor
lastRow = Cells(Rows.Count, "A").End(xlUp).Row
Set c = Rows(1).Find(what:="集計対象", LookIn:=xlValues, lookat:=xlWhole)
j = c.Column
For i = 2 To lastRow
If Cells(i, "A").Interior.Color <> xlNone Then
Exit For
End If
Next i
myColor = Cells(i, "A").Interior.Color
Range(Cells(2, j), Cells(lastRow, j)) = ""
Range("A1").AutoFilter Field:=1, Criteria1:=myColor, Operator:=xlFilterCellColor
Range(Cells(2, j), Cells(lastRow, j)).SpecialCells(xlCellTypeVisible) = 1
ActiveSheet.AutoFilterMode = False
End Sub

こんな感じではどうでしょうか?m(_ _)m

この回答への補足

ありがとうございます。

教えていただい方法を、今ひとつひとつ意味を調べながら勉強しています。
昨日、マクロの勉強を始めたばかりなのでまだわからないことだらけです。

No.1の方の補足にも書きましたが、背景色が1色だけでなく、3色でした。
それぞれルールに基づいて背景色を赤、青、黄色の3色で設定しており、それぞれが集計対象で、フラグを立てるセルを3列用意しました。

赤・・・U列
青・・・V列
黄・・・W列 としました。

まだtom04様に教えていただいたコードを理解できていない段階で恐縮ですが、お時間がございましたら色ごとにフラグを立てる方法も教えて下さい。
宜しくお願いします。

補足日時:2014/03/27 00:16
    • good
    • 0

ご利用のエクセルのバージョンも不明のご相談ですが、エクセル2007以降を使い、オートフィルタを使って「所定の色で塗りつぶされている」あるいは「塗りつぶされていない」で絞り込んで、まとめて処置してしまうのが一番お手軽な方法です。




で。とりあえずご相談の直接の回答として。
絞り込みたい条件も不明のご相談なので、ひっくるめて「塗られてないを除く」を対象とする事にします

ご利用のシートの配置状況も不明のご相談なので、ふつーに1行目にタイトル行、2行目からデータ、A列で全データの記入範囲を調査できるということにします
とりあえずふつーに「A列に塗ってあるか無いか」だけで判定できることにします
「集計対象という名前」を毎回どこかで探さなきゃならないのは別のご相談という事にして、とりあえず固定の列に記入することにします


sub macro1()
 dim r as long

 for r = 2 to cells(rows.count, "A").end(xlup).row
  cells(r, "I") = iif(cells(r, "A").interior.colorindex = xlnone, "", 1)
 next r
end sub

この回答への補足

エクセルやマクロの知識がないため、曖昧な質問の仕方ですみませんでした。

エクセルは2010を使用しています。

それと、こちらで相談を投稿してから、背景色が3色使用されているファイルも出てきてしまいました。

よく調べてから投稿するべきでした。
すみません。

1色だけの場合は教えていただいた方法で思い通りの結果を得られました。
ありがといございます。

色が3色の場合はどうしたらよいでしょうか?

色は、赤、青、黄色の3色で、D列で判断できます。
フラグを立てるセルは、
赤・・・U列
青・・・V列
黄・・・W列 で設定しました。

引き続きご指導いただけますようお願いします。

補足日時:2014/03/27 00:05
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A