You are on page 1of 2

Option Explicit

Function FXRate(currency1 As String, currency2 As String, rateType As String) As


Double
Dim str As String
Dim temp As String
Dim
Dim
Dim
Dim
Dim
Dim
Dim
Dim

bidStart As Long
bidEnd As Long
askStart As Long
askEnd As Long
openStart As Long
openEnd As Long
closeStart As Long
closeEnd As Long

Dim
Dim
Dim
Dim

bid As Double
ask As Double
ropen As Double
rclose As Double

str = "http://finance.yahoo.com/q?s=" & currency1 & currency2 & "=X"


temp = ExecuteWebRequest(str)
bidStart = InStr(temp, "Bid:")
bidEnd = InStr(bidStart, temp, "")
bid = Mid(temp, bidStart + 65, bidEnd - bidStart - 72)
askStart = InStr(temp, "Ask:")
askEnd = InStr(askStart, temp, "")
ask = Mid(temp, askStart + 65, askEnd - askStart - 72)
openStart = InStr(temp, "Open:")
openEnd = InStr(openStart, temp, "")
ropen = Mid(temp, openStart + 38, openEnd - openStart - 38)
closeStart = InStr(temp, "Prev Close:")
closeEnd = InStr(closeStart, temp, "")
rclose = Mid(temp, closeStart + 44, closeEnd - closeStart - 44)
If rateType = "ask" Then
FXRate = ask
ElseIf rateType = "bid" Then
FXRate = bid
ElseIf rateType = "open" Then
FXRate = ropen
ElseIf rateType = "close" Then
FXRate = rclose
End If
End Function
Function ExecuteWebRequest(ByVal url As String) As String
Dim oXHTTP As Object
If InStr(1, url, "?", 1) <> 0 Then
url = url & "&cb=" & Timer() * 100

Else
url = url & "?cb=" & Timer() * 100
End If
Set oXHTTP = CreateObject("MSXML2.XMLHTTP")
oXHTTP.Open "GET", url, False
oXHTTP.send
ExecuteWebRequest = oXHTTP.responseText
Set oXHTTP = Nothing
End Function

You might also like