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

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

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

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

マクロ

定義された処理手続きに応じて、どのような一連の処理を行うのかを特定させるルールをマクロと呼びます。

Q&A

解決済

1回答

4213閲覧

サイトタイトルを取得するマクロを高速化

sea21

総合スコア11

VBA

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

マクロ

定義された処理手続きに応じて、どのような一連の処理を行うのかを特定させるルールをマクロと呼びます。

0グッド

0クリップ

投稿2019/06/03 02:07

下記のマクロは、指定したURLの隣にサイトタイトルを取得するマクロです。

このマクロで、サイトタイトルを取得していましたが、
5秒に1つくらいのペースなので、もっとスピードを上げたいと思っています。

高速化するには、どこをどのように修正すれば良いでしょうか?
また、変更するべき設定などもあったりするでしょうか?

よろしくお願いいたします。

Sub sample()
Dim Carea As Range
Set Carea = Selection
If Carea(1).Value = "" Then Exit Sub

Dim Tcel As Range

Dim ObjIE As Object
Set ObjIE = CreateObject("InternetExplorer.Application")

For Each Tcel In Carea

ObjIE.Navigate Tcel.Value

Do While ObjIE.Busy = True Or ObjIE.readyState <> 4
DoEvents
Loop

Tcel.Offset(, 1) = ObjIE.document.Title
Next

ObjIE.Quit
Set ObjIE = Nothing

End Sub

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

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

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

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

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

guest

回答1

0

ベストアンサー

VBAでWebページを取得する方法

上記のページに下記の3つの方法が紹介されています。

  • InternetExplorerオブジェクト (WebBrowserコントロール)
  • HTMLDocumentオブジェクト
  • XMLHTTPオブジェクト

下にいくほど高速です。その分、制限も多くなりますが。

ページタイトルを取得するだけなら、最後の XMLHTTPオブジェクト を使う方法で十分です。

ただし、HTMLをテキストとして取得しますので、ヘッダーのタイトル情報を取り出すのは、自前のコードを作成する必要はあります。

画像の読み込みとか一切せずに、HTMLだけを取得しますので、かなり高速になります。

追記

参考になりそうなページを見つけたので、これを参考にチャレンジしててください。
MSXML2で、サイトのタイトルを取得したい - オフィス系ソフト 解決済み| 【OKWAVE】

投稿2019/06/03 03:16

編集2019/06/04 00:07
hatena19

総合スコア33715

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

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

sazi

2019/06/03 04:43

リンク先合ってます?
hatena19

2019/06/03 05:50

間違ってますね(;^ω^) 修正しておきます。
sea21

2019/06/03 23:11

回答ありがとうございます! 実は質問内容のマクロは、ネットで拾ったものです。 私自身はマクロを書いたことがなく、応用ができないでいます。 自前のコードというのは、どういった形のものでしょうか? 項目を入れ替えるだけではできないでしょうか?
hatena19

2019/06/03 23:33

リンク先のコードでHTMLを取得できます。 サイトタイトルは、HTML内に <title>サイトタイトル</title> というように埋め込まれてますので、 <title>の位置と</title>の位置をInStrで取得て、Mid関数で切り出せばいいでしょう。 サイトの文字コードによっては、文字化けする場合もあるので、その対策を必用になりますので、結構難易度は高いですね。できるところまでコードを書いてみて、うまくいかないところをピンポイントで質問されてはどうですか。 ここでは、要件を提示してコードを書いてくれという丸投げの質問は推奨されてませんので。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問