質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Q&A

解決済

2回答

4357閲覧

【Excel VBA スクレイピング】WebサイトのHTMLソースの取得をしたい。

corocoro

総合スコア9

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

0グッド

1クリップ

投稿2020/05/03 14:00

Excel VBAでwebサイトのHTMLソースを取得したいです。

Windows7ではExcel VBAの次のコードでHTMLソースが取得できました。

Set objIE = CreateObject("Internetexplorer.Application")
objIE.navigate ("view-source:https://www.yahoo.co.jp/")

しかし、Windows 10 Internet Explorer 11に変更して以来、「view-source:https://www.yahoo.co.jp/」でHTMLソースを表示することが出来なくなった為、上記のコードではエラーが生じるようになりました。

解決策をご教授頂きたく、何卒、宜しくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

HTMLソースを取得し、変数に格納する方法です。

VBA

1Dim objItem As Object 2Dim src As String 3Dim getHTMLSource As String 4 5For Each objItem In objIE.document.all 6 src = UCase$(objItem.innerHTML) 7 On Error Resume Next 8 If InStr(1, src, "<HEAD") Then 9 If InStr(1, src, "</BODY>") Then 10 getHTMLSource = objItem.innerHTML 11 Exit For 12 End If 13 End If 14Next objItem 15'エラーが発生していた場合はクリア 16If (Err.Number <> 0) Then Err.Clear 17On Error GoTo 0 'エラー処理を通常に戻す

投稿2020/05/03 14:34

TanakaHiroaki

総合スコア1063

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

corocoro

2020/05/03 20:30

早々に具体的な解決策をご教授頂き誠にありがとうございました。解決致しました。 IEでHTMLソースを表示せずとも、document.allとinnerHTMLでソースを取得できるのですね。 さらにdocument.allの何番目に入っているのか<HEADと</BODY>で特定するやり方もとても勉強になりました。誠にありがとうございました。
Yuuki2

2023/07/30 04:02

すみません、教えてください。ObjIEとview-sourceをどのように紐づければ良いのでしょうか?
guest

0

今後、CreateObject("Internetexplorer.Application") に頼らない作りの方が良い気がします。

以下の記事とか、参考になりませんでしょうか?

投稿2020/05/03 14:07

Yasumichi

総合スコア1773

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

corocoro

2020/05/03 20:41

早速ご回答ありがとうございます。とても参考になりました。 IEに依存せず、高速にデータ取得できるんですね。大変勉強になります。また、ご案内頂きましたサイトの説明はとても丁寧で分かりやすいので今後も参考にさせて頂きます。誠にありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問