Excel VBA IPアドレス/CIDR形式のサブネットマスク文字列を、IPアドレス△IPアドレス形式のサブネットマスクに変換する(Part2)

Excel VBA IPアドレス/CIDR形式のサブネットマスク文字列を、IPアドレス△IPアドレス形式のサブネットマスクに変換するマクロです。

Part1では、CIDR形式のサブネットマスク部分をIPアドレス形式のサブネットマスクに変換するマクロを紹介しました。

Part2では、Part1で作成した関数を利用して、IPアドレス/CIDR形式のサブネットマスク文字列を、IPアドレス△IPアドレス形式のサブネットマスクに変換するマクロを作成します。

プログラム例

Part1で作成した関数「ConvertSubnetMask」を呼び出し、IPアドレス△IPアドレス形式のサブネットマスクに変換します。

Function ConvertIpSubnet(ByVal strIpMask As String) As String

 

    Dim strIP() As String
    Dim strSubnet As String ‘IPアドレス形式のサブネットマスク

 

    ‘文字列を配列変換
    strIP = Split(strIpMask, “/”)

 

    ‘IPアドレス形式のサブネットマスク取得
    strSubnet = ConvertSubnetMask(CLng(strIP(LBound(strIP) + 1)))

 

    ConvertIpSubnet = Trim(strIP(LBound(strIP))) & Space(1) & strSubnet

 

End Function

以下の処理では、IPアドレス/CIDR形式のサブネットマスク文字列を、”/”で区切って、配列strIPに格納しています。

‘文字列を配列変換
strIP = Split(strIpMask, “/”)

以下の処理では、Part1で作成した関数「ConvertSubnetMask」を呼び出しています。

引数には、CIDR形式のサブネットマスク文字列をLong型に変換して渡しています。

‘IPアドレス形式のサブネットマスク取得
strSubnet = ConvertSubnetMask(CLng(strIP(LBound(strIP) + 1)))

以下の処理では、戻り値にIPアドレス、半角スペース、前処理で取得したIPアドレス形式のサブネットマスクを&(アンド)で連結して設定しています。

ConvertIpSubnet = Trim(strIP(LBound(strIP))) & Space(1) & strSubnet

イミディエントウインドウから実行すると、以下のように結果が返ってきます。

実行

 

まとめ

今回、イミディエントウィンドウから実行しましたが、Excelシートに記載されたアドレスを一括で変換したり、別の処理で利用することもできます。

以上、Excel VBA IPアドレス/CIDR形式のサブネットマスク文字列を、IPアドレス△IPアドレス形式のサブネットマスクに変換するマクロでした。