- ベストアンサー
エクセルからIEの操作って出来ますか?
IEでホームページの中の特定の範囲(どのページでも範囲は同じです)を選択してエクセルに貼り付けています。(データ収集)何度も同じことをするので、エクセルのVBAを使って自動化できないか?と悩んでいます。出来ればアルベージに一覧表があり、そのリンク先のページを取り込みたいと考えています。どなたか?詳しい方がいらっしゃいましたら教えて頂けないでしょうか?
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。 wan_wanさんの今までのご質問の内容からすれば、たぶん、おできにはなると思いますね。 ここのサイトはご存知ですか? 三流君VBAで楽しくプログラミング http://www.ken3.org/vba/ ここで、得るものは多かったです。そこで勉強してみてください。 ある程度の力があったら、ご自身で勉強し、開発したほうがよいと思います。人に頼る限りは、なかなか覚えられません。 ここのログを取るためのサンプルコードです。 以下のコードは、New で、暗黙のオブジェクトを生成していますが、本当に、それでよいのかは、私には分かりません。今までは、たぶん、良かったというだけです。 '--------------------------------------------------------- Sub InternetConnect() Dim objIE As InternetExplorer '←参照設定 Set objIE = New InternetExplorer 'CreatObject(Internet.Application) 'でも可 Dim myContentHTML As String, i As Long With objIE Const URL As String = "http://oshiete1.goo.ne.jp/oshiete.php3?c=232" .Navigate URL Do While .Busy DoEvents Loop Do Until .ReadyState = 4 DoEvents 'アクセスしにくい場所には、こうした措置が必要です i = i + 1 If i > 3000 Then MsgBox "アクセスできませんでした。", vbInformation: Goto Quit End If Loop myContentHTML = .Document.body.innerHTML Stop 'myContentHTML に、生ログが取れます。 End With Quit: Set objIE = Nothing '不要になったら閉じる End Sub '--------------------------------------------------------- 生ログを、テキストファイルなどに落としてみて、その内容で、その後のコードを研究してみると良いです。 テキストに落とすのは、以下のようにします。切り分けには、RegExp の正規表現を使うと便利です。 fno = FreeFile() Open "myLog.txt" For Output As #fno 'myLog.txt -出力ファイル Print #fno, myContentHTML Close #fno なお、余談ですが、「Goo!教えて」よりは、「OkWave」のほうが、断然軽いです。
お礼
いつも、ありがとう御座います。 教えて頂いたホムペを見てみました。知りたいことが全部書いてあり、とても参考になりました。 何とか、考えているものが出来そうです。 本当に、ありがとうございました。