Excel VBAを用いたネットワーク診断の自動化は、日常の業務において非常に便利なツールとなり得ます。特に、ネットワークの状態を迅速にチェックしたいIT管理者や、簡単なトラブルシューティングツールを求めているユーザーにとっては、このようなスクリプトが大いに役立ちます。本記事では、Excel内でVBAコードを使用して特定のIPアドレスへPingを送信し、その結果をユーザーに通知する方法を紹介します。これにより、日常の業務におけるネットワークトラブルシューティングを段階的に、かつ効率的に行うことができます。
日常業務への応用
下記のVBAプログラムは日常の業務に応用することで、次のようなメリットが得られます。
- 迅速なネットワーク診断: ネットワークの問題を素早く特定し、対処することができます。
- 生産性の向上: 手動でのトラブルシューティング手順を自動化することで、時間を節約し、他の作業に集中できます。
- 教育ツールとしての活用: ネットワークの基本的な概念やトラブルシューティングの方法を理解するための実践的なツールとして利用できます。
●【下記のVBAプログラムに関連するMicrosoft公式ドキュメントは以下の通りです。】
・Win32_PingStatusクラス: Ping操作の結果に関する情報を含む、Win32_PingStatusクラスの公式ドキュメントです。
https://learn.microsoft.com/en-us/previous-versions/windows/desktop/wmipicmp/win32-pingstatus
今回説明するプログラムは、Pingの通信状態を調べるプログラムです。ネットワーク接続やサーバーの可用性は、日々の業務や情報技術の世界で非常に重要な要素です。特に、リモートで作業する際や、特定のサービスへの接続が必要な場合、その状態を迅速に把握することが求められます。ここで紹介するプログラムは、そのような状況において非常に役立ちます。このプログラムを使用することで、指定されたIPアドレスへのPingテストを実行し、その通信状態を確認することができます。ユーザーは簡単にIPアドレスを入力し、その結果を即座に確認できるようになります。このコードは、IT管理者やネットワーク技術者にとって貴重なツールとなりえます。それでは、順番に説明いたします。
【プログラムの流れ】
1.ユーザーに対してInputBoxを使用してIPアドレスの入力を求めます。
2.入力がない場合、処理を終了します。
3.WbemScripting.SWbemLocatorオブジェクトを作成し、ローカルPCにWMI経由で接続します。
4.Win32_PingStatusクエリを使用して、入力されたIPアドレスに対するPingテストを実行します。
5.Pingテストの結果をイテレーションし、各結果に対してステータスコードを確認します。
6.ステータスコードに基づいて、Pingの成功、タイムアウト、到達不可、その他の失敗を示すメッセージボックスを表示します。
7.使用したオブジェクトを解放します。
【プログラム実行条件・注意事項】
1.このスクリプトはWindows Management Instrumentation (WMI) を使用しています。そのため、WMIが有効になっているWindowsシステムでのみ動作します。
2.IPアドレスが正しく入力されていることを確認してください。不正な形式のIPアドレスは処理できません。
3.ネットワークの状態やファイアウォールの設定によっては、Pingテストが正常に実行されない場合があります。
★【サンプルプログラム】
下記のリンク先よりサンプルプログラムをダウンロードする事ができます。
● ping01(サンプルプログラム)
下記のサンプルプログラムは、サンプルプログラム①の応用になります。このプログラムは、Excelワークシート上で指定された複数のIPアドレスに対してPingテストを実行し、結果を記録する自動化スクリプトです。ワークシートのB列にリスト化されたIPアドレスを読み取り、各アドレスに対してPing応答をテストします。応答状況に基づいて、”Ping成功”、”Ping失敗【タイムアウト】”、”Ping失敗【到達不可】”などの結果をC列に記録します。このスクリプトは、ネットワークの状態監視やトラブルシューティングに役立ち、繰り返しの手作業を削減することで効率を向上させます。それでは、順番に説明いたします。
【プログラムの流れ】
1.必要なオブジェクト変数を宣言します。
2.1番目のワークシートを作業対象として設定します。
3.最終行をB列の内容から取得します。
4.C列の既存の内容をクリアします。
5.SWbemLocatorオブジェクトを作成してWMIに接続します。
6.2行目から最終行まで、B列からIPアドレスを読み取ります。
7.読み取ったIPアドレスにPingを実行し、結果を取得します。
8.Pingの結果に応じて、”Ping成功”、”Ping失敗【タイムアウト】”、”Ping失敗【到達不可】”、または”Ping失敗”をC列に記録します。
9.全ての行に対してPingテストを完了した後、使用したオブジェクトを解放します。
10.完了メッセージボックスを表示します。
【プログラム実行条件・注意事項】
1.このスクリプトを実行する際は、現在開いているワークシートが正しいデータを含んでいること、そして、正しいワークシートがターゲットとなっていることを確認してください。
2.大量のIPアドレスに対してPingテストを行う場合、処理に時間がかかることがあります。そのため、ユーザーは処理の完了を待つ必要があります。
3.コードの実行中にExcelを操作しないように注意してください。これは、処理中のデータの誤った入力や変更を防ぐためです。
4.ネットワークのセキュリティポリシーによっては、Pingコマンドが制限されている場合があります。そのような環境では、このスクリプトは期待通りに動作しない可能性があります。
★【サンプルプログラム】
下記のリンク先よりサンプルプログラムをダウンロードする事ができます。
● ping02(サンプルプログラム)