
EXCEL VBA で VBAサンプルを参考にして、下記により、URLの内容を得ようとしていますが、できません。 どうも、URL画面の中に インプット用の記述があると、できなくなるのでは、と推測していますが、できるケースもあるようです。解決方法があるようでしたら、教えていただけますでしょうか? (Win7 64B EXCEL2010 IE11です。)'
Sub URL取得TEST()
On Error GoTo Er1
Dim StrUrl As String
StrUrl = InputBox("URLを指定", "URL入力", "http://www3.nhk.or.jp/nhkworld/") ' これは 読み込めます
StrUrl = InputBox("URLを指定", "URL入力", "http://uwl.weblio.jp/") ' これが読み込めません
Dim objIE As Object
Set objIE = CreateObject("InternetExplorer.application")
objIE.Visible = True
objIE.FullScreen = False
objIE.Top = 200
objIE.Left = 100
objIE.Width = 800
objIE.Height = 600
objIE.navigate StrUrl
While (objIE.readyState <> 3 And objIE.readyState <> 4) Or objIE.busy = True
DoEvents
Wend
DoEvents
Workbooks.Add
objIE.ExecWB 17, 0
objIE.ExecWB 12, 0
Sheets.Add
ActiveSheet.name = "Format テキスト"
Range("A1").Select
ActiveSheet.PasteSpecial Format:="テキスト"
objIE.ExecWB 17, 0
objIE.ExecWB 12, 0
Sheets.Add
ActiveSheet.name = "FormatHTML"
Range("A1").Select
ActiveSheet.PasteSpecial Format:="HTML" '別のURLでテキストOKでこれはだめというケースあり
'
objIE.Quit
Set objIE = Nothing
Exit Sub
'
Er1:
objIE.Quit
Set objIE = Nothing
End Sub
No.3ベストアンサー
- 回答日時:
試してみて
objIE.navigate StrUrl
While (objIE.readyState <> 3 And objIE.readyState <> 4) Or objIE.busy = True
DoEvents
Wend
DoEvents
objIE.Document.body.Focus
No.8
- 回答日時:
>単純に このままでは 不能なのでしょうか
>JavaScriptだから、何かの設定が必要とかがあるのでしょうか
確認してみましたが、示されてる「Weblio英単語帳」のページでは上手くいきますが。
この回答への補足
示していただいた内容を
While (objIE.readyState <> 3 And objIE.readyState <> 4) Or objIE.busy = True
DoEvents
Wend
DoEvents
objIE.document.forms("login").Item("email").blur
Workbooks.Add
と修正して、試しましたが、Workbooks.Add へ いかずに Er1:エラーへ 移動します。
なにかの 原因・影響があるのでしょうか?
No.6
- 回答日時:
>objIE.document.forms("login").Item ("email"), Blur()
失礼。JavaScriptの構文なので()は余計でした。ついでに.のはずがカンマになってました。
objIE.document.forms("login").Item ("email").Blur

No.5
- 回答日時:
#1です。
補足に対しまして・・・例えば1個目のURLは、IEの通常操作でページを開くと、「ページそのもの」にフォーカスがある(と思われます)ので、そのままの状態ですべて選択(Ctrl+A)でコピペできますが、2個目のURLの場合、開いた時点で「空欄」のテキストエリア(=ログインメールアドレスの欄)が選択されてしまうため、空のテキストエリアから全て選択しようとしても、空ですので当然何も選択されません。
(これが例えばテキストエリアにデフォルト仕様で何か文字が入力されている場合、その文字列がコピーされエクセルに貼り付けられるかと思います)
私の知識が不足していたために汎用性のある解決法が思い付きませんでしたが、#3の方が回答されているように「objIE.Document.body.Focus」を追加することで基本的にどのURLでも貼り付けられるようになるかと思います。
(私も勉強になりました、ありがとうございます。。。)
#3の方の補足で「他のウェブページが開いていると~」とありましたが、少なくとも私の環境ではその状態でも問題無く動作しました。。
No.2
- 回答日時:
私も知らなかったので「html Focus 外す」でググりました。
objIE.navigate StrUrl
While (objIE.readyState <> 3 And objIE.readyState <> 4) Or objIE.busy = True
DoEvents
Wend
DoEvents
objIE.document.forms("login").Item ("email"), Blur()
「Weblio英単語帳~TOEICやTOEFLなどの勉強にも使える英語学習サービス~」で、
ログインメールアドレスのテキストボックスにフォーカスが当たってるのでそれを外すとか。

No.1
- 回答日時:
対象のURLを開いた際にCtrl+Aを押してみて、ページ全体が選択されれば読み込めるページ、何も選択されなければ読み込まれないページかと思います。
開いた際に例えばテキストエリアにフォーカスが移動されてしまうようなページは(検索サイト系はそのような所が多そうですが)、そのままではページ全体の選択がされないため読み込まれなくなってしまうかと思います。
例えば質問文にある2個目のURLはTABを2回押してフォーカスをテキストエリアの外に出してやった後にExecWB 17, 0で選択できますので DoEvents の下あたりに
SendKeys "{tab}"
SendKeys "{tab}"
のような記述を追加してやればとりあえずこのケースでは解決できると思いますが、この方法ではURL毎に対処法を変えてやる必要がありそうなのであまり良い回答ではないかと思われます。。。
(例えば、YahooのトップページなどはTABを7回ぐらい押してやっとフォーカスが外れます)
もしかしたら他の方がもっと汎用性のある解決法を提示してくださるかもしれませんm(_ _)m
この回答への補足
『開いた際にCtrl+Aを押してみて』というのは、タイミングがあるのでしょうか?
どんな状態が 『ページ全体が選択される』『されない』なのかを 具体的に教えていただけますでしょうか?
下段の回答のほうは、うまくできました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) EXCEL VBAで NHK NEWSの NEWSデータ内容取得が できない 1 2023/04/09 12:26
- Excel(エクセル) Excel VBAどこが間違ってますか? 4 2023/07/17 10:04
- Visual Basic(VBA) 【VBA】写真の貼り付けコードがうまく機能しません。 5 2022/09/01 18:43
- Visual Basic(VBA) VBAで重複した値のセルに色付けをしたい 1 2022/11/02 16:12
- Excel(エクセル) 2つのVBAを一緒にしたら機能しなくなりました(エクセル) 7 2022/06/02 12:41
- Visual Basic(VBA) Excel VBAの解読について質問があります。 概要は、マクロでチェックボックスにチェックすると日 1 2023/02/10 07:50
- Visual Basic(VBA) ExcelVBAに関する質問 3 2023/02/17 10:47
- Visual Basic(VBA) InputBoxでキャンセルボタンを押したらファイル自体を閉じたい 3 2022/07/23 17:52
- Visual Basic(VBA) Excel vbaについての質問 3 2023/04/18 16:14
- Excel(エクセル) Excel2019 マクロを使用し画像を貼り付けした際のリンク切れについて 2 2022/11/15 16:14
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
危険なURL?
-
VS2013の選択した行に出る白枠...
-
googleサーチコンソールでの重...
-
TextBoxのカーソルを右端に移す...
-
フラッシュとドロップダウンメ...
-
ファーストピアスのキャッチが...
-
WEB作成で参考・お手本になるH...
-
Powerbullet
-
WPのウィジェット(ブロックエ...
-
フラッシュのswfをHTML内のifra...
-
▲▲フラッシュのリンクの張り方...
-
P902i 自作着うた(iモーション...
-
お教えください
-
VBにて、非アクティブでフォー...
-
vb.netでフォーカスされている...
-
ASP.NET 動的コントロールのフ...
-
バイナリファイルの編集
-
word
-
数式中の文字をCambria Math以...
-
PowerPoint SmartArtの箇条書...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ファーストピアスのキャッチが...
-
ASP.NET 動的コントロールのフ...
-
TextBoxのカーソルを右端に移す...
-
googleサーチコンソールでの重...
-
Access2010 SetFocusが当たらない
-
VS2013の選択した行に出る白枠...
-
EXCEL VBAで URLの内容 が取...
-
人体切断マジックの事でお聞き...
-
Canvasのメモリーリーク疑いに...
-
LINEのステメやプロ画は変える...
-
vb.netでフォーカスされている...
-
ユーザーがクリックするまでフ...
-
子ウインドウを閉じて 親ウイ...
-
今、課題で弁論文を書いて、テ...
-
アプリがフォーカスを
-
自動的に前画面に戻る
-
デュアルコアCPUの期待度は?
-
400 Bad Syntaxって何ですか?
-
JSPで初期カーソル表示する方法
-
Dynabook 1870でUSBメモリブート
おすすめ情報