Skip to content

Instantly share code, notes, and snippets.

@muramoto1041
Created June 3, 2018 02:07
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save muramoto1041/2e18c8009a2c8748ee839cfbb2134bf4 to your computer and use it in GitHub Desktop.
Save muramoto1041/2e18c8009a2c8748ee839cfbb2134bf4 to your computer and use it in GitHub Desktop.
Excel javascript json
'(1)JSONデータを解析し、オブジェクト変数に格納
Dim objJson As Object
Set objJson = js.CodeObject.eval("(" + resText + ")")
'(2)解析済みのJSONデータの件数を取得
Dim objRowCount As Integer
objRowCount = CallByName(objJson, "length", VbGet)
'(3)結果をワークシートへ転記
For idx = 0 To objRowCount - 1 'データの件数だけ繰り返す
'(4)JSONデータ1件分を取り出し、オブジェクト変数に格納
Dim objRow As Object
Set objRow = CallByName(objJson, idx, VbGet)
'(5)JSONデータ1件分の該当項目を取り出し、セルに転記
'リンク付きのタイトルを設定する
ActiveSheet.Hyperlinks.Add _
anchor:=Range("word_title").Offset(idx + 1), _
Address:=CallByName(objRow, "url", VbGet), _
TextToDisplay:=CallByName(objRow, "title", VbGet)
'HTMLの改行記号を、VBAの改行記号に置換して設定する
Range("meaning_title").Offset(idx + 1) _
= Replace(CallByName(objRow, "body", VbGet), "<br/>", vbCrLf)
'更新日時をExcelで認識できる形式に変換して設定する
Range("date_title").Offset(idx + 1) _
= timeConv(CallByName(objRow, "datetime", VbGet))
Set objRow = Nothing
Next
Set objJson = Nothing
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment