0

ExcelでGoogle Finance APIを介して株価を取得したい。

リソース:https://finance.google.com/finance/info

方法:GET

パラメーター:

  • クライアント = イグ
  • q =<exchange code>:<stock code>

例:

https://finance.google.com/finance/info?client=ig&q=TPE:2330

このリクエストは、台湾セミコンダクターの株価を取得します。

ワークシートの設定やVBAコードの記述に関係なく、私の目標を達成するための解決策はありますか?

4

1 に答える 1

1

はい。メソッドは、応答を取得するためのXMLHTTPRequest、 https: //msdn.microsoft.com/en-us/library/ms759148%28v=vs.85%29.aspx です。JSONなので、応答を解析するためにJSONをVBAで解析します。VBA を使用して JSON を解析する最も簡単な方法については、Excel VBA での JSON の解析で説明されていますが、検索キーワードで使用できるより快適なライブラリがありますExcel VBA parse JSON

ユースケースの簡単な例:

Sub testGetJSON()

 sExchangeCode = "TPE"
 sStockCode = "2330"
 sURL = "https://finance.google.com/finance/info?client=ig&q=" & sExchangeCode & ":" & sStockCode

 Set oXMLHTTP = CreateObject("MSXML2.XMLHTTP")
 oXMLHTTP.Open "GET", sURL, False
 oXMLHTTP.send

 sJSONResp = oXMLHTTP.responseText

 sJSONResp = Mid(sJSONResp, 4, Len(sJSONResp))

 Set oScript = CreateObject("ScriptControl")
 oScript.Language = "jscript"
 oScript.AddCode "function getProperty(jsonObj, propertyName) { return jsonObj[propertyName]; } "

 Set oJSObj = oScript.eval("(" & sJSONResp & ")")

 Set oProp0 = oScript.Run("getProperty", oJSObj, "0")

 sLCur = oProp0.l_cur
 sLT = oProp0.lt

 MsgBox sLT & " : " & sLCur

End Sub
于 2015-10-26T11:46:22.833 に答える