InternetExplorer.Application は終了処理が面倒で、Visible を True にすると解りますが、処理がエラーで途中で終わってしまうとメモリ上に残ってしまって後の InternetExplorer.Application の処理に悪い影響が出ます。なので、毎回作成して解放するという処理方法で利用します。 InternetExplorer.Application から直接は JSON オブジェクトにアクセスできなかったので、以下のような形でアクセスしています。( Window オブジェクトは、Document.parentWindow で取得できます ) Json オブジェクトのプロパティに予約語(たとえばこの場合、text というプロパティ)を使用したら、VB のエディタが .Text と強制変換して実行時にエラーとなりました。なので、textdata というプロパティに変更してテストしました。
Sub ボタン1_Click() Dim doc As Object, result As Object Set Ie = CreateObject("InternetExplorer.Application") 'Ie.Visible = True Ie.Navigate ("about:blank") Do While Ie.Busy ' 100 ミリ秒 Wscript.Sleep 100 Loop Set doc = Ie.document doc.write "<script>document.JSON_Parse=function(s) {return JSON.parse(s);}</script>" Dim str As String str = Cells(1, 1).Value Set result = doc.JSON_Parse(str) MsgBox (str) MsgBox (result.option.textdata) Ie.Quit Set Ie = Nothing End Sub
|
【VBAの最新記事】
- VBA : 一ヶ月の予定リストの作成して、csv を読み込んでデータを表示する
- Excel で 角丸四角形や1つの角を切り取った四角形で、角丸や切り取った長さを一定に設定する為の VBA Sub プロシージャ
- Excel の VBA : ブックを開いたら、フォームを表示してボタンをクリックしたらセルにデータをセットする
- VBA : Microsoft Access(.accdb) の読み込み
- VBA : livedoor お天気API の JSON データを読み込んで利用する
- VBA : シートの保護と部分的なセル入力の許可
- VBA : 挿入した『テキストボックス』にアクセスする
- VBA : FileSystemObject でテキストファイル(CSV) を読み込んでセルにセットする