- ベストアンサー
VBAを使用してテキストファイルのソースを変数に格納する方法
- VBAを使用してデスクトップにあるテキストファイル(html型)のソースを変数に格納する方法を教えてください。
- 現在はブラウザを立ち上げてソースを取得していますが、ADOや他のテキスト操作を使用してソースを変数に格納する方法があれば教えてください。
- ブラウザを立ち上げずにテキストファイルのソースを変数に格納する方法を教えてください。
- みんなの回答 (3)
- 専門家の回答
関連するQ&A
- vbscriptでhtmlのソース保存
vbscriptにてIEを操作し、指定URLのhtmlソースコードをファイルに保存するスクリプトを作成しています。 ですが、サイトによっては取得に失敗するケースがあり、原因が分かりません。 下記の例では、yahooのトップページは取得できますが、amazonのトップページは 取得できませんでした。 申し訳ありませんが、原因と解決策を教えていただきたいです。 よろしくお願いいたします。 尚、環境はWinXP(SP3) 、IEはver8を使用しています。 '--------------------------------------------' Option Explicit Dim objIE Dim strBody Set objIE = CreateObject("InternetExplorer.Application") objIE.Visible = True objIE.Navigate "http://www.amazon.com/" 'objIE.Navigate "http://www.yahoo.co.jp/" Do Until objIE.Busy = False WScript.sleep(250) Loop' strBody = objIE.Document.Body.InnerHtml msgbox strBody Dim fso, tf Set fso = CreateObject("Scripting.FileSystemObject") Set tf = fso.CreateTextFile("test.txt", True) tf.Write strBody tf.Close Set objIE = Nothing '--------------------------------------------'
- ベストアンサー
- Visual Basic
- 複数のタブを開きたい IE
IE9を使っています。 画像のようにタブを二つ開くにはどうすればいいでしょうか? Sub test() Dim objIE As InternetExplorer Set objIE = CreateObject("InternetExplorer.application") objIE.Visible = True objIE.Navigate "http://www.yahoo.co.jp/" Set objIE = Nothing End Sub だと一つのタブしか開けません。 Sub test() Dim objIE As InternetExplorer Set objIE = CreateObject("InternetExplorer.application") objIE.Visible = True objIE.Navigate "http://www.yahoo.co.jp/" objIE.Navigate "http://www.yahoo.co.jp/" Set objIE = Nothing End Sub にしても Sub test() Dim objIE As InternetExplorer Set objIE = CreateObject("InternetExplorer.application") objIE.Visible = True objIE.Navigate "http://www.yahoo.co.jp/" objIE.Navigate2 "http://www.yahoo.co.jp/" Set objIE = Nothing End Sub にしても1つのタブしか開けないです。 ご回答よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- VBAでソースの一番上から取得するには?
Sub 取得() Dim objIE As Object Set objIE = CreateObject("InternetExplorer.Application") objIE.Navigate "http://www.google.co.jp/" objIE.Visible = True Do While objIE.Busy = True DoEvents Loop Debug.Print objIE.Document.body.innerHTML Set objIE = Nothing End Sub これだと、 <DIVstyle="DISPLAY:none"id=cst></DIV><TEXTAREAstyle="DISPLAY:none" id=csi></TEXTAREA><SCRIPT>if(google.j.b)document.body.style.visibility='hidden';</SCRIPT> からしか取得されないのですが、 実際のソースを見ると <!doctype html><html itemscope="itemscope" itemtype="http://schema.org/WebPage"> で始まってます。 VBAソースのてっぺんから取得する方法を教えてください。 innerHTML以外を使うのでしょうか?
- ベストアンサー
- オフィス系ソフト
- vbaでIEを閉じるだけの処理
オフィス2003を使用しています。 「IEを開いて閉じる」は Sub TEST() Set ObjIE = CreateObject("InternetExplorer.application") ObjIE.Visible = True '見えるようにする '文字列で指定したURLに飛ぶ ObjIE.navigate "http://www.yahoo.co.jp/index.html" '表示終了まで待つ Do While ObjIE.Busy = True DoEvents Loop ObjIE.Quit End Sub と言うことがわかったのですが 開くのは他の作業をしたときに行うので 「閉じる」だけをvbaで行いたいのですがどうすればいいのかわかりません。 Sub TEST2() Set ObjIE = CreateObject("InternetExplorer.application") ObjIE.Visible = True '見えるようにする ObjIE.Quit End Sub だと また新たなIEが起動してしまい「現在起動しているIEを閉じる」と言うことができません。 アドバイスをお願い致します。
- ベストアンサー
- オフィス系ソフト
- VBAでyahooをログアウトしたい
VBAでyahooにログインすることはできたのですが、 VBAでログアウトしたいです。 Sub yahoo() Set objIE = CreateObject("InternetExplorer.application") objIE.Visible = True objIE.Navigate "http://www.yahoo.co.jp/" ログアウトするコード ・ ・ ・ End Sub まではわかりました。自分なりには頑張りました。 IE9を使ってるのですが そもそもソースの見方がわかりません。 ご教授よろしくお願いします。
- ベストアンサー
- Visual Basic
- VBAでIE操作をするサンプル
VBAでIE操作をするサンプルをネットでいくつか見ているのですが Sub Sample1() Dim objShell As Object Dim objIE As New InternetExplorer Set objShell = CreateObject("Shell.Application") objIE.Visible = True objIE.Navigate "http://www.yahoo.co.jp/" Set objIE = Nothing Set objShell = Nothing End Sub Sub Sample2() Dim objIE As InternetExplorer Set objIE = CreateObject("InternetExplorer.application") objIE.Visible = True objIE.Navigate "http://www.yahoo.co.jp/" Set objIE = Nothing End Sub ではどちらを使った方がいいのでしょうか? 圧倒的にSample2の方がネットでは多いのですが Sample1のやり方もあることを知りました。 Sample1の方法でブラウザを開くメリットはあるのでしょうか?
- ベストアンサー
- Visual Basic
- VBAでIE操作ができない エラーになる
vista+オフィス2007です。 エクセルで --------------------------------------------------------- Sub ie_test() Dim objIE As Object Set objIE = CreateObject("InternetExplorer.Application") objIE.Visible = True objIE.Navigate "http://www.google.co.jp/" End Sub --------------------------------------------------------- を実行したいのですができません。 Set objIE = CreateObject("InternetExplorer.Application") の部分で、しばらく固まり、その後 「実行時エラー'-2147467259(80004005)': オートメーションエラーです。 エラーを特定できません」 と表示されてしまいます。 前にvista+オフィス2003の時は 上記のコードで問題なく動作しました。 2007でも動く方法を教えてください。ご回答よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
- ie操作 ローカルパスだとエラーになる
ヤフーなら問題なくコードが動くのに、URLがローカルのパスだと、エラーになってしまいます。 具体的には、 *********************************************************** Sub Sample1() Set objIE = CreateObject("InternetExplorer.Application") objIE.Navigate "http://www.yahoo.co.jp/" objIE.Visible = True Do Until objIE.ReadyState = 4 Loop Do While objIE.Busy = True DoEvents Loop End Sub *********************************************************** だと、問題なく実行されるのに、 *********************************************************** Sub Sample2() strFName = MyDesktop & "\index.html" Set objIE = CreateObject("InternetExplorer.Application") objIE.Navigate strFName objIE.Visible = True Do Until objIE.ReadyState = 4 Loop Do While objIE.Busy = True DoEvents Loop End Sub ------------------------- Function MyDesktop() Dim WSH As Variant Set WSH = CreateObject("Wscript.Shell") MyDesktop = WSH.SpecialFolders("Desktop") Set WSH = Nothing End Function *********************************************************** だと、 Do Until objIE.ReadyState = 4 で オートメーションエラー 起動されたオブジェクトはクライアントから切断されました。 となります。 なぜローカルだと、エラーになるのでしょうか? 何が違うのでしょうか?
- 締切済み
- オフィス系ソフト
- サイトのソースのsubmitボタンの数を取得したい
サイトのソースのsubmitボタンの数を取得したいのですが Sub test() Dim objIE As InternetExplorer Dim MyRow As Long Set objIE = CreateObject("InternetExplorer.Application") objIE.Visible = True objIE.Navigate "http://www.coneco.net/" Do While objIE.Busy = True Or objIE.ReadyState <> 4 DoEvents Loop Debug.Print objIE.Document.all.tags("input").Type("submit").Count Set objIE = Nothing End Sub だとうまく動きません。 どう、変更すればよろしいですか?
- ベストアンサー
- その他MS Office製品
- 二つ目のタブを閉じたい
http://hiroba.chintai.net/qa7823804.html こちらでも質問したものです。 xls88さまに教えていただいて、 Sub test() Dim objIE As InternetExplorer Set objIE = CreateObject("InternetExplorer.application") objIE.Visible = True objIE.navigate "http://www.yahoo.co.jp/" objIE.Navigate2 "http://www.goo.ne.jp/", 2048 objIE.Navigate2 "http://www.google.co.jp/", 2048 objIE.Quit Set objIE = Nothing End Sub で、複数のタブを開くことができたのですが、 http://www.goo.ne.jp/のタブだけを閉じたい場合はどうすればいいでしょうか? 上記のコードを実行すると、http://www.yahoo.co.jp/が閉じてしまいます。 ご回答よろしくお願いします。
- ベストアンサー
- オフィス系ソフト
お礼
ありがとうございました。