- ベストアンサー
URLからIPアドレスをGETする方法
エクセルで、URLからIPアドレスをGETして、それを別のせるに 記述する。 といったことはできるのでしょうか。 コマンドプロンプトの、nslookupのような機能です。 それがエクセルでできればいいのですが・・・。 nslookupや、IPひろばなどを使えば済むのですが、URLのリストが 100件以上あって、まる一日時間がかかってしまいます。 どなたかご存知の方がいらっしゃいましたら、ご教授 いただけないでしょうか? 宜しくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
ANo.1で回答した者です。お礼メッセージをありがとうございます。 > cmdが立ち上がりっぱなしになってしまうのですが、これは仕様なのでしょうか? nslookupが終わり次第、コマンドプロンプトも閉じるはずですが。 もしうまく行かないようでしたら、コマンド実行部分を Set exec = wsh.exec("%ComSpec% /k " & cmd) または Set exec = wsh.exec("%ComSpec% " & cmd) のように変更してみてください。
その他の回答 (1)
できます。 まず、下記の関数を標準モジュール(ユーザー定義関数)として用意してください。 標準モジュールの作り方はhttp://www.serpress.co.jp/excel/vba037.htmlを参考にしてください。 -------------------------------- Option Explicit Function nslookup(url As String) As String Dim wsh, exec, cmd, res As String, i As Integer Dim buf() As String Set wsh = CreateObject("WScript.Shell") cmd = "nslookup " & url Set exec = wsh.exec("%ComSpec% /c " & cmd) Do While exec.Status = 0 DoEvents Loop res = exec.StdOut.ReadAll nslookup = res buf = Split(res, vbCrLf) For i = 0 To UBound(buf) If Left(buf(i), 8) = "Address:" Then nslookup = Mid(buf(i), 11) End If Next i End Function -------------------------------- Excelシート側では =UserFunc.nslookup("okwave.jp") のようにします。
お礼
おぉ!!これです。ありがとうございます。 本当に感謝です。 cmdが立ち上がりっぱなしになってしまうのですが、 これは仕様なのでしょうか? IPアドレスを調べたら、自動的に消す方法はあるのでしょうか? 質問ばかりでもうしわけないです・・・
お礼
何度も何度も、ご回答頂き本当にありがとうございます。 変更したところ、無事消えるようになりました。 ありがとうございます。 今回、i80286様にご回答頂き、プログラミングやOSの知識 が無いことを実感しました。 プログラミング、OSについての知識をこれから学ぼうと思います。 ありがとうございました。