• 締切済み

塗潰されたセルと同じ色の数字を重複無しで縦に並べる

いつもお世話になっております。 ご存じの方がお見えでしたらご回答をよろしくお願いします。 【質問】  添付図の様に5×5マスが4つあり、それが縦に6つあります。  5×5マスの4つの中には、黄色、緑色、赤色、青色の4色のいずれかでセルが  塗り潰されています。M列~P列に4色(黄色、緑色、赤色、青色)の色があります。   (1)5×5マスの4つの中で同じ色で塗潰されたセルの数字を重複無しでM列~P列に4色のいずれかに縦に昇順に並べる。   (2)上記(1)で縦に4つに並べた数字をR列に縦1列に重複無しで縦に昇順に並べる。 【注意事項】   ・5×5マスが4つの中で、4色全ての塗り潰しがある訳ではありません。    ※最低、黄色のみという場合があります。   ・5×5マスが4つの中で、塗り潰されているセルは毎回異なります。   ・使用するエクセルは2016です。 以上、よろしくお願いします。

みんなの回答

  • kkkkkm
  • ベストアンサー率66% (1719/2589)
回答No.3

同じようなのを以前見たことがありますよ。 こんな感じでいけるのではというイメージだけで。 なお、これ以上先に進みません。 実際には一部設定がないので正常に動作しません。 Sub Test() For i = 1 To 6 For j = 1 To 4 For Each c In Range("5x5の範囲") For k = M列 To P列 If Cells(Row, k).DisplayFormat.Interior.Color = c.DisplayFormat.Interior.Color Then Cells(RowCount, k).End(xlUp).Offset(1, 0).Value = c.Value Cells(RowCount, "R").End(xlUp).Offset(1, 0).Value = c.Value End If Next Next Next Next 'R列及びM列~P列のデータをエクセルの機能の重複の削除と並び替えをVBAで利用 End Sub

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

VBAでやれば、むつかしくない(ロジックが繰り返しだけでできる)ようだ。 しかし、掲示画像がぼやけて読者にはよくデータが見えない。 質問者がエクセルVBAを経験あるのかどうかが問題。 その数年に、数列のマス目の色付けのカウントとかの質問が、同一人からかもしれないが、形を変えて、出ている。 このニーズはどういうところから来るのか。宝くじか、実験がゲームか、何が背後にあるのか 必要理由の説明なく、自分も結果だけ検証して、勉強しておらず、回答者を、VBAコードを作る小間使いのような扱いで、質問するのは、回答する気がしないのだが。

回答No.1

ユーザーがエクセルの達人ならVBA抜きで出来そうだけど、VBAを使った方がコードを見やすくて簡単にできそうな気がする。 セルの色判定、 セルの読み書き、 forループ を組み合わせて使えればVBAで作れそうだ。

関連するQ&A