• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:nslookupの結果をExcelで出力したい。)

nslookupの結果をExcelで出力!VBAマクロで簡単に実現する方法

このQ&Aのポイント
  • 毎月2000件の取引データをCSVファイルに保存しているとき、不正なIPアドレスがデータに残ることがあります。そのため、手作業でDNSの逆引きツールを用いてチェックしています。しかしブラウザを出して一つずつ確認するのは手間がかかります。そこで、コマンドプロンプトを呼び出し、nslookupのドメイン逆引き結果をエクセルに出力するVBAマクロを作成する方法を教えてください。IPアドレスはC列、逆引き結果はQ列に出力します。
  • お客様の取引データをCSVファイルに保存していますが、不正なIPアドレスがデータに残ることがあります。そこで、手作業でDNSの逆引きツールを使ってチェックしています。しかし、一つずつ確認するのは大変です。そこで、コマンドプロンプトを使ってnslookupのドメイン逆引き結果をエクセルに出力するVBAマクロを作成したいです。IPアドレスはC列に、逆引き結果はQ列に出力します。
  • データベースに保存している取引データには不正なIPアドレスが含まれることがあります。そのため、手作業でDNSの逆引きツールを使用してチェックしています。しかし、一つずつ確認するのは効率が悪いです。そこで、コマンドプロンプトでnslookupのドメイン逆引き結果を出力するVBAマクロを作成したいです。IPアドレスはC列、逆引き結果はQ列に出力します。作業工程を教えていただけると助かります。

質問者が選んだベストアンサー

  • ベストアンサー
  • mt2008
  • ベストアンサー率52% (885/1701)
回答No.3

ざっくりしたサンプルです。 A1:A5に調べたいIPが入っているとして、B列に名前を書きだしています。 一瞬DOS窓が開くのは我慢。 また、サンプルですのでエラー処理は入っていません。あしからず。 Sub Sample()   Dim Wsh, wExec, cmd, rRes, i, j   Dim sBuf() As String   Set Wsh = CreateObject("WScript.Shell")   For i = 1 To 5     Set wExec = Wsh.exec("%ComSpec% /c nslookup " & Cells(i, 1))     Do While wExec.Status = 0       DoEvents     Loop     rRes = wExec.StdOut.ReadAll     sBuf = Split(rRes, vbCrLf)     For j = 0 To UBound(sBuf)       If Left(sBuf(j), 5) = "Name:" Or Left(sBuf(j), 3) = "名前:" Then         Cells(i, 2) = Trim(Right(sBuf(j), Len(sBuf(j)) - 5))       End If     Next j   Next i End Sub

すると、全ての回答が全文表示されます。

その他の回答 (2)

回答No.2

もしかしたら、この辺が一番簡単かも http://community.spiceworks.com/scripts/show/1201-powershell-script-dns-forward-lookup-script-with-auto-generate-excel-file ちょこっと、変更するだけ。 内容は逆転の発想です。エクセルを他のスクリプトからCOMとして呼び出し、書き込む。まあ、こっちの方が簡単でしょうね。

すると、全ての回答が全文表示されます。
回答No.1

スレがなかなかつかないのは、虫がよすぎるからでしょう。 まずこの辺で、基本的な呼び出しについて学んでください http://search.yahoo.co.jp/search?p=%22%E3%82%A8%E3%82%AF%E3%82%BB%E3%83%AB%22+%22VBA%22+%22DOS%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%22&aq=-1&oq=&ei=UTF-8&fr=ie8sc&n=10&x=wrt コマンドの出力結果について http://search.yahoo.co.jp/search?b=1&n=10&ei=UTF-8&fr=ie8sc&p=%22DOS%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%22+%22%E3%83%AA%E3%83%80%E3%82%A4%E3%83%AC%E3%82%AF%E3%83%88%22 でテキストファイルを読むには http://search.yahoo.co.jp/search?p=%22%E3%82%A8%E3%82%AF%E3%82%BB%E3%83%AB%22+%22VBA%22+%22%E3%83%86%E3%82%AD%E3%82%B9%E3%83%88%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%22%E3%80%80%E8%AA%AD%E3%81%BF%E8%BE%BC%E3%81%BF&aq=-1&oq=&ei=UTF-8&fr=ie8sc&n=10&x=wrt なんて見れば、コピペでとりあえずできます。 できたら、大まかのところが分かったら、COM等でDNSデーターを問い合わせる物を見つけ、又はTCP/IP情報を引き出すCOMを見つけ、インスタンスとして作成してください。そうすれば変数(or Cell)に直接格納できます。 イントラネット内ですよね。インターネット上のものはセキュリティーがかかっている場合おおいのですが・・・ であれば、最初からリストしておくのが最も手っ取り早いんですけどね。キャッシュとか、どうしているんでしょうね。 まあ、がんばって

すると、全ての回答が全文表示されます。

関連するQ&A