• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:検索値と同じ値か、隣接数字との差が0か1なら塗潰す)

検索値と同じ値か、隣接数字との差が0か1なら塗潰す

このQ&Aのポイント
  • 検索値と同じ値か、隣接数字との差が0か1ならセルを塗潰します。
  • 使用するエクセルは2010年版で、セルの数字は2桁で表現されます。
  • 最大43個の数字が右に並び、検索値と複写数にそれぞれ1~43の数字を入力します。

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

  • ベストアンサー
  • watabe007
  • ベストアンサー率62% (476/760)
回答No.2

なんか、前にも有ったような課題ですね Sub Test() Dim i As Long, myArea As Range Dim myRang As Range, c As Range, cc As Range Dim SV As Long, flg As Boolean Application.ScreenUpdating = False '作業行挿入 Rows("1:1").Insert '作業列挿入 Columns("A:A").Insert Range("B13:N522").Clear For i = 1 To Range("P2").Value Range("B2:N12").Copy Cells(i * 12 + 2, "B") Set myArea = Cells(i * 12 + 2, "B").Resize(11, 13).SpecialCells(2) Cells(3, i + 15).Copy Cells(i * 12 + 1, "B") For Each myRang In myArea.Areas SV = Val(Cells(i * 12 + 1, "B").Value) For Each c In myRang.Cells If Val(c.Value) = SV Then For Each cc In c.Cells(0, 0).Resize(3, 3) If cc.Row Mod 6 <> 1 And cc.Column Mod 7 <> 1 _ And c.Address <> cc.Address Then If Abs(Val(c.Value) - Val(cc.Value)) <= 1 Then cc.Interior.Color = vbRed flg = True End If End If Next If flg = True Then c.Interior.Color = vbRed Else c.Interior.Color = vbYellow End If End If flg = False Next Next Next '作業行削除 Rows("1:1").Delete '作業列削除 Columns("A:A").Delete Application.ScreenUpdating = True End Sub

すると、全ての回答が全文表示されます。

その他の回答 (1)

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

この質問と同じ質問を先日、出さなかった?なぜダブって質問するの? 条件付き書式でできるように思う。 (先だっての回答はVBAだったかな) スペースの行(第6列)や列(G列)を、うるさく言わないなら、 A12に指定の値41を入れることにして(私の決めたこと、表外ならどこでもよい、下記式が変わるが) A1:M11を範囲指定しておいて(A1セルがアクチブの状態で=必須) 式を =OR(A1=$A$12,A1=$A$12+1,A1=$A$12-1) 塗りつぶしの色を黄色で指定する。 ーー なぜ質問に「複写」や「検索」ということが、出てくるのかわからなくて、前回答に遅れたが、上記ではだめか? 駄目ならば、その理由を補足して置いたら。

すると、全ての回答が全文表示されます。

関連するQ&A

専門家に質問してみよう