|
▼miyake さん:
こんにちは。
>なお、もう一つご教示願いたいのですが、このコードによりIPアドレスの範囲を求めることができ、
>CC(カントリーコード)の一覧表を作りました。
>この表を基に、あるIPアドレスのCCを求めるには、どのようにしたらいいのでしょうか。
WorkSheets(1)のA1から 一覧表(CCとIPアドレスの範囲が入っています)
WorkSheets(2)のA1から 〜IPのCCを調べる表〜
総当りではこんな感じです。
今は範囲内でチェックしていますが、範囲が順番に並んでいますから
最初のIP_startの値だけ調べるだけでいいですね。
Sub IpAddrCheck()
Dim v As Variant
Dim v1 As Variant
Dim v2 As Variant
Dim v3 As Variant
Dim i As Long
Dim j As Long
Dim x As Long
Dim h As String
Dim hD As String
v1 = Worksheets(1).Range("A1").CurrentRegion.Resize(, 3).Value
For i = 2 To UBound(v1)
For j = 2 To 3
h = ""
v = Split(v1(i, j), ".")
For x = 0 To UBound(v)
hD = Right("00" & Hex(v(x)), 2)
h = h & hD
Next
v1(i, j) = CLng("&H" & h)
Next
Next
v2 = Worksheets(2).Range("A1").CurrentRegion.Resize(, 1).Value
ReDim v3(1 To UBound(v2) - 1, 1 To 1)
For i = 2 To UBound(v2)
h = ""
v = Split(v2(i, 1), ".")
For x = 0 To UBound(v)
hD = Right("00" & Hex(v(x)), 2)
h = h & hD
Next
v2(i, 1) = CLng("&H" & h)
Next
For i = 2 To UBound(v2)
For j = 2 To UBound(v1)
If v1(j, 2) <= v2(i, 1) And v1(j, 3) >= v2(i, 1) Then
v3(i - 1, 1) = v1(j, 1)
Exit For
End If
Next
Next
With Worksheets(2)
.Range("B2").Resize(UBound(v3)).Value = v3
End With
End Sub
|
|