• ベストアンサー

塗りつぶしたセルの対称となるセルの数字を抜き出す2

いつもお世話になっております。 もう1つよろしければ回答をお願いいたします。 【質問】 添付図の様にA1~G30までに1~37迄の数字が重複有りで入っています。 それを、I2~O2の数字で検索します。 検索できたらそのセルを赤く塗り潰します。 赤く塗りつぶしたセルがD列以外の場合、 対称(A列の対称はG列、B列の対称はF列、C列の対象はE列)となる数字を I5から下に並べる方法が知りたいです。 【注意事項】 ・使用するエクセルは2016です。 ・I2~O2に入る数字は1~37迄で重複無しです。 ・添付図は途中の4行目迄のサンプルとなっております。 以上、よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • HohoPapa
  • ベストアンサー率65% (455/693)
回答No.1

もしVBAの学習が目的の質問なら 前回私が提示したコードをじっくり追い、 どこを修正すれば対応できるの試行するのも 学習の一つになると思いますヨ。 以下に今回のコードをポストし、 合わせてどこを修正したのかわかるようにしました。 '☆の行です。 Sub Sample()  Dim RngKey As Range  Dim RngAll As Range  Dim RngHit As Range  Dim PutLine As Long  Dim RowNum As Long  Dim ColNum As Long  Dim KeyCol As Long    Set RngKey = Range("I2:O2")  '☆  Set RngAll = Range("A1:G30") '☆  Set RngHit = Range("I5:I184") '☆    PutLine = 0    For RowNum = 1 To RngAll.Rows.Count   For ColNum = 1 To RngAll.Columns.Count    RngAll.Cells(RowNum, ColNum).Interior.Pattern = xlNone    For KeyCol = 1 To RngKey.Columns.Count     If RngAll.Cells(RowNum, ColNum).Value = _       RngKey.Cells(1, KeyCol).Value Then      RngAll.Cells(RowNum, ColNum).Interior.Color = rgbRed      If ColNum <> 4 Then         '☆       PutLine = PutLine + 1       RngHit.Cells(PutLine, 1).Value = _        RngAll.Cells(RowNum, 8 - ColNum).Value '☆      End If     End If    Next KeyCol   Next ColNum  Next RowNum End Sub

sazanami0422
質問者

お礼

回答いただきありがとうございます。 最初に教えていただいたソースを修正したのですが、 実行したら”実行時エラー:1004”と出て悩んでました。 最後の☆の部分の、RowNum, 8  をRowNum, 6としていました。 まだまだです。 ありがとうございました。

関連するQ&A