Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


18144 / 76732 ←次へ | 前へ→

【64031】Re:IPアドレス範囲の計算
発言  Yuki  - 10/1/10(日) 22:07 -

引用なし
パスワード
   ▼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

0 hits

【63993】IPアドレス範囲の計算 miyake 10/1/9(土) 1:05 質問
【63995】Re:IPアドレス範囲の計算 Yuki 10/1/9(土) 11:07 発言
【63997】Re:IPアドレス範囲の計算 Yuki 10/1/9(土) 11:27 発言
【64019】Re:IPアドレス範囲の計算 Yuki 10/1/10(日) 8:16 発言
【64028】Re:IPアドレス範囲の計算 miyake 10/1/10(日) 19:06 お礼
【64031】Re:IPアドレス範囲の計算 Yuki 10/1/10(日) 22:07 発言
【64036】Re:IPアドレス範囲の計算 miyake 10/1/11(月) 23:01 お礼

18144 / 76732 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free