- ベストアンサー
URLからIPを調べるマクロ
指定したURLのIPを調べたいのですが、 数が多くて手動でやるのは難しいです。 A列に複数のURLの羅列があり、 その隣に、URLのIPを記入させたいです。 これは、マクロでできますでしょうか? そのマクロは、どのような記述になりますでしょうか? エクセル2016です。 よろしくお願いいたします。
- mute_low
- お礼率2% (55/2070)
- Excel(エクセル)
- 回答数2
- ありがとう数2
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
オモシロソウで興味を引かれたので作成してみました。 A列にurlの羅列があり、 そのIPアドレスをB列に出力しています。 IPV4アドレスでいいですね? ポストしたコードは DNSサーバーの設置状況(特に台数)に依存します。 もし期待通り動作しない場合は 適当なホスト名でNSLookupを実行し その戻り値全数をポストしてみてください。 Option Explicit 'IPアドレス取得メイン Sub PutIP() Dim rowEnd As Long Dim buf As String Dim i As Long rowEnd = Cells(Rows.Count, 1).End(xlUp).Row For i = 1 To rowEnd buf = UrlToHost(Cells(i, 1).Value) If Not buf = "" Then Cells(i, 2).Value = GetNsLookUp(buf) End If Next i End Sub 'nslookupを発行して戻り値からIPアドレスを取得 Function GetNsLookUp(buf As String) Const ChkStrLine = 4 'チェック開始行番号 Dim WSH, wExec, sCmd As String, Result As String, tmp Dim LineCnt As Long Dim wkIP As String Set WSH = CreateObject("WScript.Shell") sCmd = "nslookup " & buf Set wExec = WSH.Exec("%ComSpec% /c " & sCmd) Do While wExec.Status = 0 DoEvents Loop Result = wExec.StdOut.ReadAll tmp = Split(Result, vbCrLf) If UBound(tmp) < ChkStrLine Then GetNsLookUp = "" Exit Function End If For LineCnt = ChkStrLine To UBound(tmp) wkIP = GetIPAdddrss(tmp(LineCnt)) If wkIP <> "" Then GetNsLookUp = wkIP Exit Function End If Next LineCnt Set wExec = Nothing Set WSH = Nothing End Function '//nslookupの戻り値からIPAddrss(V4)を取得 Function GetIPAdddrss(strIP) As String Dim wkStr1 As String Dim wkStr2 As String GetIPAdddrss = "" wkStr1 = StrConv(strIP, vbUpperCase) wkStr1 = Replace(wkStr1, Chr(9), "") wkStr1 = Replace(wkStr1, "ADDRESS:", "") wkStr2 = Trim(wkStr1) wkStr1 = Replace(wkStr2, ".", "") If IsNumeric(wkStr1) = True Then GetIPAdddrss = wkStr2 End If End Function '//urlからホスト名を取得 Function UrlToHost(InUrl As String) As String Dim wkpos As Long Dim wkStr As String UrlToHost = "" wkpos = InStr(InUrl, "//") If wkpos = 0 Then Exit Function wkStr = Right(InUrl, Len(InUrl) - wkpos - 1) wkpos = InStr(wkStr, "/") If wkpos = 0 Then Exit Function UrlToHost = Left(wkStr, wkpos - 1) End Function
その他の回答 (1)
- masatsan
- ベストアンサー率15% (179/1159)
お困りのようですね。 しかし大変恐縮ですが、これでは丸投げでだれかやってという感じ。 この掲示板はボランティアが答えているわけですから、 本当にお困りなら業者に依頼するのが良いかと。 とはいえ。現在手動でやっているのをマクロの記録で記録して その後はそのマクロをいじって使い方を変えればよいのではないでしょうか。
関連するQ&A
- URLの羅列からソースの中に「WordPress」
A列にURLの羅列が記入されています。 そのURL先のサイトのソースの中に、 「WordPress」の記述がないものを、別セルに表示させたいです。 おそらく、マクロで出来ると思うのですが、 そのマクロはどのような記述になるでしょうか? エクセル2016です。 よろしくお願いいたします。
- ベストアンサー
- Excel(エクセル)
- URLからWordPressではないサイトを抽出す
URLがA列それぞれのセルに記入されています。そのURL達の中で、”WordPressで作ったサイトではない”サイトを抽出したいです。 WordPressで作ったサイトは、 ソースの中に「WordPress」という記述があります。 それがあると、URLの隣にバツ。 WordPressではないサイトURLの隣に◯。 という風に、できるでしょうか? おそらく、マクロを使うかもしれません。 そのマクロの記述はどのようなものになるでしょうか? エクセル2016です。 よろしくお願いいたします。
- ベストアンサー
- Excel(エクセル)
- エクセルのソートのマクロ
エクセルでのソートのマクロを教えてください。 範囲選択は手動でその都度変更します。優先列、昇順は変更ありません。 例えば、AからE列までデータがあり、第一優先列をD列、第二優先列をA列として、それぞれ昇順でソートします。 範囲はその都度手動で複数行を全列選択します。 つまり、適宜、複数行を選択してからこのマクロを実行すれば常に先の形式でソートできるようにしたいです。 わかりにくい記述で恐縮ですがよろしくお願いします。
- ベストアンサー
- その他MS Office製品
- 同じマクロを同時に動かす
URL先から情報を取得するマクロ。 このURL先から情報を取得するマクロというのは、 URL先のソースの中に、指定した語句があれば、 隣のセルに○を付けるというものです。 調べるURLの量が多いため、これを早く完了させるために、 同じExcelを開いて、同じマクロを同時に動かしたいです。 ですが、これって可能なのでしょうか? 同じExcelを開こうとしても、複数分けて開けないですし、 上記のマクロを同時に動かすと、回線か何かに弊害があるかもと思いました。 調べるURLの量が多いですが、 複数同時にやれば、短い時間で完了できそうです。 複数のExcelを同時に開いて、同じマクロを同時に動かす。 これは可能でしょうか?また、弊害があったりするでしょうか? よろしくお願いいたします。
- ベストアンサー
- Excel(エクセル)
- ドメインのアドレスを、マクロで取得する
A列にずっと下へ、ドメイン名(〇〇.com)が記入をされています。 そのドメイン名(〇〇.com)の、 全てのアドレス(https://~、http://~)を取得したいです。 この場合、どのようなマクロの記述になるでしょうか? ドメインの量が多くて、手動ではできないです。 そのため、マクロで自動で取得していきたいです。 Excel2016です。 よろしくお願いいたします。
- ベストアンサー
- Excel(エクセル)
- Google検索をして、その下に検索結果(URL)
A列1行から、ずっと右へキーワードが記入されています。 調べたいキーワードは、400近くあります。 その1行目にあるキーワードをGoogle検索をして、 検索結果のURLだけを、そのキーワードの下に表示させたいです。 検索結果は全部で10ページくらい、大体100個のURLになるかと思います。 (youtube動画や広告などは含めないです) このようなことは、Excelのマクロでできるでしょうか? できるとしたら、どのようなマクロの記述になるでしょうか? Excel2016です。 よろしくお願いいたします。
- ベストアンサー
- Excel(エクセル)
- 《エクセル》 マクロ-セルの範囲指定の式
いつもお世話になります。 2つお聞きしたいのですが、エクセルで、 ・「A列のデータのあるセル範囲のみを指定する」と、 ・「A列のデータのあるセル範囲の、隣(B列)のセルを指定する」 というマクロの式はどのように書けば良いのでしょうか。
- ベストアンサー
- CAD・DTP
- マクロ記述の簡略化
以前 教えていただいた式コピーの マクロについてなのですが A1にデータがあり B1に式があって その式をA列のデータがある部分までBにコピーするという 内容で教えていただきました。 これで同様にC1にも式があり その式をA列のデータがある部分までCにコピーするという 内容を付け加えたのですが とりあえずまったく同じマクロを記入して 変数を変えてB1部分の記述をCIに置き換えて ・・・という方法でしましたところ 当然ばっちり動くのですが なんせ同じ記述を2回しているので 見にくくなっていたり動作が遅くなりそうで もっとすっきりした記述があればと思っています。 なにか良い方法ありましたら御教授願います。 私に応用力がないものでお手数おかけいたします。 参照URLのfreezemoon様から教えていただいた マクロについてです。 http://okweb.jp/kotaeru.php3?q=936658
- ベストアンサー
- オフィス系ソフト
- Excel2007です。マクロについて教えてください。
エクセル2007です。マクロについて教えてください。 エクセルで英語の単語問題を作りたいのですが・・・ 例えばセルA列とB列(A列30問B列30問で全60問)に単語問題が記入されています。C列とD列が答えを記入する欄です。答えを記入し終えたら、「答え合わせボタン」を押して間違えた解答の文字だけが赤くなる。このような物を作成するにはどのようにすればいいでしょうか?? どなたか回答よろしくお願い致します。
- 締切済み
- オフィス系ソフト
- エクセルマクロで教えてください
Sub REI817() Range("A1", "A100").Select End Sub で"A100"の部分を可変にしたい(A列の使用している部分だけ)のですがどのように記述したらよいでしょうか。 また、A行のと同じ範囲数をC行に指定するにはどうしたらよいでしょうか。 エクセル2003です。宜しくお願いいたします。
- 締切済み
- オフィス系ソフト
お礼
次々とIPを取得することができました。 ありがとうございます!