- ベストアンサー
左側数字と同じ位置の右側で数字のチェック方法は?
- A1~E5からG1~K5と同じ位置にある数字とその数字から8方向の数字をチェックする方法を教えてください。
- A1~E5の数字をG1~K5でチェックし、結果をA7から下に表示させる方法を知りたいです。
- G1~K5と同じ位置にある数字とその数字から8方向の数字との関係を調べる方法を教えてください。
- みんなの回答 (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
補足
新年早々回答を頂きありがとうございます。 今年もよろしくお願いします。 >複数ヒットした場合 >(例えば、右上と下に該当値があった場合)の説明がないように思います。 質問文に書いてましたが、判り難かったですね。 A1~E5、G1~K5それぞれ1~99迄の数字は”重複無し”で入っている前提ですので G1~K5で複数ヒットすることは無いです。 >29:無し ※K3に29があるとみなすと、そもそもK3には31、8方向は28,17,29,14,16 > なので、”無し”。とのことですが、左となるのが正解ではないでしょうか? 私が間違っていました。29は”左”が正しいです。