- ベストアンサー
VBAを使用してテキストファイルのソースを変数に格納する方法
- VBAを使用してデスクトップにあるテキストファイル(html型)のソースを変数に格納する方法を教えてください。
- 現在はブラウザを立ち上げてソースを取得していますが、ADOや他のテキスト操作を使用してソースを変数に格納する方法があれば教えてください。
- ブラウザを立ち上げずにテキストファイルのソースを変数に格納する方法を教えてください。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
別の質問への回答を作成していて検索している内に、たまたま遭遇しました。 http://okwave.jp/qa/q8648361.html #2さんの回答にも出てきますが、IEを起動せずにDOMが扱えるみたいです。 単純に変数bufに格納するだけなら、下記の様にTextfileとして扱えば良いですし、 少し触ってみただけですが、HTMLDocumentにwriteすれば、DOMで操作できます。 IEは起動しないにしても、似たようなプロセスが走っているのではと、途中でStopしてタスクマネージャーで眺めてみましたが、発見できておりません。 Sub test() Dim doc As Object Dim fso As Object Dim textFile As Object Dim buf As String Set doc = CreateObject("htmlfile") Set fso = CreateObject("Scripting.FileSystemObject") Set textFile = fso.OpenTextFile(GetDesktopPath & "\test.html") buf = textFile.readAll doc.write buf Debug.Print doc.getElementsByTagName("Title")(0).innerText Set doc = Nothing Set fso = Nothing End Sub 'コード中の伏せ字を防ぐためデスクトップに置いて試しています Private Function GetDesktopPath() As String Dim wScriptHost As Object, strInitDir As String Set wScriptHost = CreateObject("Wscript.Shell") GetDesktopPath = wScriptHost.SpecialFolders("Desktop") Set wScriptHost = Nothing End Function
その他の回答 (2)
- kumatti1
- ベストアンサー率60% (73/121)
載せられてるコードから察するにIEを介さないでDOM処理を行いたいのでしょうけど、 CreateObject("htmlfile")でインスタンス化して IPersistFileのLoadメソッドで読みこめばいいのですが、 VBA用のタイプライブラリを作るかどっかから調達してこないといけませんね。
お礼
ありがとうございました。
- kkkkkm
- ベストアンサー率66% (1719/2589)
テキストファイルの読み込みですので以下のサイトを参考にしてみてください http://officetanaka.net/excel/vba/file/file08b.htm
お礼
ありがとうございました。
お礼
ありがとうございました。