• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:左側数字と同じ位置の右側で数字のチェック方法は?)

左側数字と同じ位置の右側で数字のチェック方法は?

このQ&Aのポイント
  • A1~E5からG1~K5と同じ位置にある数字とその数字から8方向の数字をチェックする方法を教えてください。
  • A1~E5の数字をG1~K5でチェックし、結果をA7から下に表示させる方法を知りたいです。
  • G1~K5と同じ位置にある数字とその数字から8方向の数字との関係を調べる方法を教えてください。

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

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

暇だったので作ってみました。 複数ヒットした場合 (例えば、右上と下に該当値があった場合)の説明がないように思います。 また、 >29:無し ※K3に29があるとみなすと、そもそもK3には31、8方向は28,17,29,14,16 >      なので、”無し”。 とのことですが、 左となるのが正解ではないでしょうか? Option Explicit Sub abc()  Dim MyRow1 As Long  Dim MyCol1 As Long  Dim MyRow2 As Long  Dim MyCol2 As Long  Dim MyLCnt As Long  Dim Rng1 As Range  Dim Rng2 As Range    For MyLCnt = 0 To 24   MyRow1 = Int(MyLCnt / 5) + 1   MyCol1 = MyLCnt Mod 5 + 1   MyRow2 = Int(MyLCnt / 5) + 1   MyCol2 = MyLCnt Mod 5 + 1 + 6   With ThisWorkbook.Sheets(1)    Set Rng1 = .Cells(MyRow1, MyCol1)    Set Rng2 = .Cells(MyRow2, MyCol2)    .Cells(MyLCnt + 7, 1).Value = .Cells(MyRow1, MyCol1).Value    .Cells(MyLCnt + 7, 2).Value = getHIkaku(Rng1, Rng2)   End With  Next MyLCnt End Sub Function getHIkaku(Rng1 As Range, Rng2 As Range) As String    getHIkaku = "無し"    If Rng2.Row <> 1 Then   If Rng2.Column <> 1 Then    If Rng1.Value = Rng2.Offset(-1, -1).Value Then     getHIkaku = "左上"     Exit Function    End If   End If       If Rng1.Value = Rng2.Offset(-1, 0).Value Then    getHIkaku = "上"    Exit Function   End If       If Rng1.Value = Rng2.Offset(-1, 1).Value Then    getHIkaku = "右上"    Exit Function   End If  End If      If Rng2.Column <> 1 Then   If Rng1.Value = Rng2.Offset(0, -1).Value Then    getHIkaku = "左"    Exit Function   End If  End If    If Rng1.Value = Rng2.Offset(0, 0).Value Then   getHIkaku = "同じ"   Exit Function  End If    If Rng1.Value = Rng2.Offset(0, 1).Value Then   getHIkaku = "右"   Exit Function  End If    If Rng2.Column <> 1 Then   If Rng1.Value = Rng2.Offset(1, -1).Value Then    getHIkaku = "左下"    Exit Function   End If  End If      If Rng1.Value = Rng2.Offset(1, 0).Value Then   getHIkaku = "下"   Exit Function  End If      If Rng1.Value = Rng2.Offset(1, 1).Value Then   getHIkaku = "右下"   Exit Function  End If End Function

moguo4649
質問者

補足

新年早々回答を頂きありがとうございます。 今年もよろしくお願いします。 >複数ヒットした場合 >(例えば、右上と下に該当値があった場合)の説明がないように思います。  質問文に書いてましたが、判り難かったですね。  A1~E5、G1~K5それぞれ1~99迄の数字は”重複無し”で入っている前提ですので  G1~K5で複数ヒットすることは無いです。 >29:無し ※K3に29があるとみなすと、そもそもK3には31、8方向は28,17,29,14,16 >      なので、”無し”。とのことですが、左となるのが正解ではないでしょうか? 私が間違っていました。29は”左”が正しいです。

関連するQ&A

専門家に質問してみよう