for j=1 to rt objIEx.Document.Write "<td><input size=3 type=input name=f" & cstr(i) & "_" & cstr(j) & "></td>" next objIEx.Document.Write "</tr>" next
objIEx.Document.Write "停止:<input type=checkbox name=term><br>" Set Voice1 = CreateObject("SAPI.SpVoice") Set xml = CreateObject("WinHttp.WinHttpRequest.5.1") Set doc = CreateObject("Microsoft.XMLDOM") 'メモ CreateObjectするより、参照設定で指定したほうが本当はいいかも。
doc.loadXML (xml.responseText) If doc.documentElement.selectSingleNode("responseStatus").nodeTypedValue <> "OK" Then msg = doc.documentElement.selectSingleNode("message").nodeTypedValue MsgBox "GMO側が以下のエラーを返しました" + vbCrLf + "[" + msg + "]" ' Exit Sub End If
doc.loadXML (xml.responseText) If doc.documentElement.selectSingleNode("responseStatus").nodeTypedValue = "NG" Then If doc.documentElement.selectSingleNode("message").nodeTypedValue = "Authentication Failure." Then MsgBox ("ユーザIDまたはパスワードが誤っています") 'Exit Sub ElseIf doc.documentElement.selectSingleNode("message").nodeTypedValue = "Web service is not permitted." Then '2007/04/03現在、GMOはこのエラーをかえさない。正常になる。ただし発注や一覧を問い合わせるとエラーになる MsgBox ("GMOホームページに行って利用設定が必要です") 'Exit Sub Else msg = doc.documentElement.selectSingleNode("message").nodeTypedValue MsgBox "GMO側が以下のエラーを返しました" + vbCrLf + "[" + msg + "]" 'Exit Sub End If ElseIf doc.documentElement.selectSingleNode("responseStatus").nodeTypedValue <> "OK" Then msg = doc.documentElement.selectSingleNode("message").nodeTypedValue MsgBox "GMO側が以下のエラーを返しました" + vbCrLf + "[" + msg + "]" 'Exit Sub End If
objIEx.Document.write "Login完了<br>"
doc.async = False '非同期をやめる。つまり同期にする。
url = BaseURL & "/ws/fx/tsukaPairList.do" 'url="https://fx.gmo.jp/fx1-1/ws/fx/tsukaPairList.do" '引数なしなら、全通貨ペアを取得 'url="https://fx.gmo.jp/fx1-1/ws/fx/tsukaPairList.do&tka[0].tkt=1&tka[1].tkt=2" '引数指定も可能 xml.Open "GET", url, False xml.send doc.loadXML (xml.responseText) If doc.documentElement.selectSingleNode("responseStatus").nodeTypedValue <> "OK" Then msg = doc.documentElement.selectSingleNode("message").nodeTypedValue MsgBox "GMO側が以下のエラーを返しました" + vbCrLf + "[" + msg + "]" End If
'Debug.Print xml.responseText
Set ListItems = doc.documentElement.selectSingleNode("tsukaPairList").childNodes ii = 0 Do While ii < ListItems.Length And ii < 15 Set ListItem = ListItems.Item(ii) ' = ListItem.Attributes.getNamedItem("tsukaPairCode").nodeTypedValue objIEx.document.all.tags("INPUT").item(ii*rt+0).value= ListItem.Attributes.getNamedItem("tsukaPairName").nodeTypedValue ' = ListItem.selectSingleNode("maxTorihikiSuryo").nodeTypedValue '= ListItem.selectSingleNode("minTorihikiSuryo").nodeTypedValue ' = ListItem.selectSingleNode("torihikiTani").nodeTypedValue ' = ListItem.selectSingleNode("yobineTani").nodeTypedValue '2008/09/25 FX-V1.1.0版よりyobineTaniが追加
ii = ii + 1 Loop do url = BaseURL & "/ws/fx/rateList.do" xml.Open "GET", url, False xml.send doc.loadXML (xml.responseText) If doc.documentElement.selectSingleNode("responseStatus").nodeTypedValue <> "OK" Then msg = doc.documentElement.selectSingleNode("message").nodeTypedValue objIEx.Document.write "GMO側が以下のエラーを返しました" + vbCrLf + "[" + msg + "]" WScript.Quit End If Set ListItems = doc.documentElement.selectSingleNode("rateList").childNodes ii = 0 Do While ii < ListItems.Length And ii < 15 Set ListItem = ListItems.Item(ii) objIEx.document.all.tags("INPUT").item(ii*rt+1).value =ListItem.selectSingleNode("bid").nodeTypedValue if ii=0 then Voice1.Speak ListItem.selectSingleNode("bid").nodeTypedValue end if objIEx.document.all.tags("INPUT").item(ii*rt+2).value =ListItem.selectSingleNode("ask").nodeTypedValue objIEx.document.all.tags("INPUT").item(ii*rt+3).value = ListItem.selectSingleNode("zenjitsuhi").nodeTypedValue objIEx.document.all.tags("INPUT").item(ii*rt+4).value = ListItem.selectSingleNode("bidHigh").nodeTypedValue objIEx.document.all.tags("INPUT").item(ii*rt+5).value = ListItem.selectSingleNode("bidLow").nodeTypedValue objIEx.document.all.tags("INPUT").item(ii*rt+6).value = ListItem.selectSingleNode("uriSwap").nodeTypedValue objIEx.document.all.tags("INPUT").item(ii*rt+7).value = ListItem.selectSingleNode("kaiSwap").nodeTypedValue ' = ListItem.selectSingleNode("hasseibi").nodeTypedValue ' = ListItem.selectSingleNode("fuyoNissu").nodeTypedValue ' = ListItem.selectSingleNode("nichiji").nodeTypedValue '2008/09/25 FX-V1.1.0版よりnichijiが追加
ii = ii + 1 Loop If ii < ListItems.Length Then objIEx.Document.write "通貨ペアが15件以上あります" End If if objIEx.Document.all.term.checked=true then exit do WScript.Sleep (5000) loop doc.async = False '非同期をやめる。つまり同期にする。 url = BaseURL & "/ws-logout" xml.Open "GET", url, False xml.send doc.loadXML (xml.responseText) If doc.documentElement.selectSingleNode("responseStatus").nodeTypedValue <> "OK" Then objIEx.Document.write "logout error" else objIEx.Document.write "logout OK" End If Set xml = Nothing Set doc = Nothing 'Err: 'MsgBox "エラーが発生しました" + vbCrLf + Err.Description, vbOKOnly