[[20061212102649]] 『EXCELLのマクロでのIPアドレスの比較に関して』(ヤス) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『EXCELLのマクロでのIPアドレスの比較に関して』(ヤス)
 EXCELLのマクロで、あるIPアドレスを他のIPアドレスの範囲内にあるかないかを比較したいのですが、VBAでの記述方法がわかりません。
 どなたかご存じないでしょうか?
 一例を以下に述べます。
 192.168.10.124が、192.168.0.0〜192.168.40.255の範囲内にあるかないかを判定。
 この場合、範囲内に入っているので、OKと判定したいのですが、IPアドレスは「.(ドット)」で区切られているため、困っております。
 もしご存知でしたら、お願いいたします。

 お使いのExcelのバージョンは何でしょう?
 3桁の数字に変換してから比較するのはどうでしょう?
 手順どおりにコードを書くとこんな感じになると思います。(Hatch)
Sub test2()
Dim c As Range
Dim myP
Dim myIp(3) As String
    For Each c In Selection
        myP = Split(c.Value, ".")
        myIp(0) = Right("000" & myP(0), 3) & "."
        myIp(1) = Right("000" & myP(1), 3) & "."
        myIp(2) = Right("000" & myP(2), 3) & "."
        myIp(3) = Right("000" & myP(3), 3)
        myIp(0) = myIp(0) & myIp(1) & myIp(2) & myIp(3)
        Select Case myIp(0)
            Case "192.168.000.000" To "192.168.040.255"
                c.Offset(0, 1).Value = "OK"
            Case Else
                c.Offset(0, 1).Value = "X"
        End Select
    Next c
End Sub

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.