スポンサーリンク

上記の広告は、30日以上更新がないブログに表示されています。
新たに記事を投稿することで、広告を消すことができます。  

Posted by だてBLOG運営事務局 at

2015年06月08日

ExcelでSheet内のIPをクリックでPing送信

Excelの表を使ってネットワーク情報を
管理している方もたくさんいると思うが
IPをクリックしたらPing送信なんてのが
簡単にできたら楽ですよね
ということで簡易的にPingをする仕組みを作成し
最後に改良して使えるもににしてみた

まずはマクロ有効ブックを1つ作ります
仮に作ったブックをPing.xlsmとしましょう
作りたてのブックのSheet1を右クリックし
コードの表示でVBEを起動します

次に(General)の部分をWorksheetに変更し
SelectionChangeの部分をBeforeDoubleClickに変更する
まぁこんな感じ


そしてBeforeDoubleClickの部分に以下のコードを記述
-t の後ろには半角スペースが1つ入っているのに注意

Dim ret
ret = Shell("ping -t " & ActiveCell.Value, vbNormalFocus)


あとはIPの記述してあるセルをダブルクリックすると
コマンドプロンプトが起動してPingが連続送信されます
しかしこのままだとドコをクリックしても送信されるので
送信できるセル範囲をIf文あたりで制御するとか
もう一手間必要になる

画像はスクロールして全体をみれます


ということで
タカさんはIPv4だけクリックで送信できればいいので
正規表現でIPv4だけダブルクリックで送信するようにしてみた
BeforeDoubleClickに記述する完成コードは以下
まぁIPv4以外もPingしたいよって人にはいらないコードだね(笑)

Dim exp
Set exp = CreateObject("VBScript.RegExp")

With exp
.Pattern = "^(\d|[01]?\d\d|2[0-4]\d|25[0-5])\.(\d|[01]?\d\d|2[0-4]\d|25[0-5])\.(\d|[01]?\d\d|2[0-4]\d|25[0-5])\.(\d|[01]?\d\d|2[0-4]\d|25[0-5])$"
.IgnoreCase = False
.Global = True
If .Test(ActiveCell.Value) Then
Dim ret
ret = Shell("ping -t" & Chr(32) & ActiveCell.Value, vbNormalFocus)
End If
End With

Set exp = Nothing


わかりずらいので画像も貼っておきます


  


Posted by タカさん at 21:09Comments(0)プログラミング備忘録