実現したいこと
交通費精算を素早くできるように、乗り換え検索より複数の乗り換え検索を自動で調べるVBAコードを作成してもらったのですが、エラーになり機能しません。
お分かりになられる方ご教授ください。
全く知識のない初心者でございますので、コードを修正して頂けると大変助かります。
発生している問題・エラーメッセージ
こちらがエラーになっている?ようです。
Declare Sub Sleep Lib “kernel32” (ByVal dwMilliseconds As Long)
他に間違っている所があれば修正いただきたいです。
該当のソースコード
Option Explicit
Dim IE As Object
Dim txtInput(16) As Object
Declare Sub Sleep Lib “kernel32” (ByVal dwMilliseconds As Long)
Sub 乗り換え検索2()
Dim 出発() As String
Dim 到着() As String
Dim 検索タイプ() As String
Dim 日付() As Date
Dim 時間() As Date
Dim 飛行機() As String
Dim 新幹線() As String
Dim 有料特急() As String
Dim 高速バス() As String
Dim 路線バス() As String
Dim フェリー() As String
Dim 検索結果の表示順() As String
Dim URL() As String
Dim i As Long
i = 0
For i = 0 To 10
ReDim Preserve 出発(i) As String
ReDim Preserve 到着(i) As String
ReDim Preserve 検索タイプ(i) As String
ReDim Preserve 日付(i) As Date
ReDim Preserve 時間(i) As Date
ReDim Preserve 飛行機(i) As String
ReDim Preserve 新幹線(i) As String
ReDim Preserve 有料特急(i) As String
ReDim Preserve 高速バス(i) As String
ReDim Preserve 路線バス(i) As String
ReDim Preserve フェリー(i) As String
ReDim Preserve 検索結果の表示順(i) As String
ReDim Preserve URL(i) As String
出発(i) = Cells(i + 4, 3)
到着(i) = Cells(i + 4, 4)
Select Case Cells(i + 4, 5)
Case Is = “出発”
検索タイプ(i) = “1”
Case Is = “到着”
検索タイプ(i) = “4”
Case Is = “始発”
検索タイプ(i) = “3”
Case Is = “終電”
検索タイプ(i) = “2”
Case Is = “指定なし”
検索タイプ(i) = “5”
Case Else
検索タイプ(i) = “5”
End Select
If Cells(i + 4, 6) <> “” Then
日付(i) = Cells(i + 4, 6)
Else
日付(i) = Date
End If
If Cells(i + 4, 7) <> “” Then
時間(i) = Cells(i + 4, 7)
Else
時間(i) = “9:00”
End If
If Cells(i + 4, 8) <> “” Then
飛行機(i) = “1”
Else
飛行機(i) = “0”
End If
If Cells(i + 4, 9) <> “” Then
新幹線(i) = “1”
Else
新幹線(i) = “0”
End If
If Cells(i + 4, 10) <> “” Then
有料特急(i) = “1”
Else
有料特急(i) = “0”
End If
If Cells(i + 4, 11) <> “” Then
高速バス(i) = “1”
Else
高速バス(i) = “0”
End If
If Cells(i + 4, 12) <> “” Then
路線バス(i) = “1”
Else
路線バス(i) = “0”
End If
If Cells(i + 4, 13) <> “” Then
フェリー(i) = “1”
Else
フェリー(i) = “0”
End If
Select Case Cells(i + 4, 14)
Case Is = “到着が早い順”
検索結果の表示順(i) = “0”
Case Is = “料金が安い順”
検索結果の表示順(i) = “1”
Case Is = “乗り換え回数順”
検索結果の表示順(i) = “2”
Case Else
End Select
URL(i) = “https://transit.yahoo.co.jp/search/result?flatlon=&” & _
“from=” & Application.WorksheetFunction.EncodeURL(出発(i)) & _
“&tlatlon=” & _
“&to=” & Application.WorksheetFunction.EncodeURL(到着(i)) & _
“&via=&via=&via=” & _
“&y=” & Format(Year(日付(i)), “0000”) & _
“&m=” & Format(Month(日付(i)), “00”) & _
“&d=” & Format(Day(日付(i)), “00”) & _
“&hh=” & Format(Hour(時間(i)), “00”) & _
“&m2=” & Right(Format(Minute(時間(i)), “00”), 1) & _
“&m1=” & Left(Format(Minute(時間(i)), “00”), 1) & _
“&type=” & 検索タイプ(i) & _
“&ticket=” & “ic” & _
“&al=” & 飛行機(i) & _
“&shin=” & 新幹線(i) & _
“&ex=” & 有料特急(i) & _
“&hb=” & 高速バス(i) & _
“&lb=” & 路線バス(i) & _
“&sr=” & フェリー(i) & _
“&s=” & 検索結果の表示順(i) & _
“&expkind=” & “1” & “&ws=” & “3” ’自由席優先で歩くの少しゆっくり
’IE立上げ
Set IE = CreateObject(“InternetExplorer.application”)
IE.Visible = True
IE.navigate (URL(i))
Do While IE.Busy Or IE.readyState <> READYSTATE_COMPLETE
DoEvents
Sleep 1
Loop
Sleep 500
’乗り換え案内結果集計
Set txtInput(0) = IE.document.getElementsByClassName(“time”)(0)
Cells(i + 4, 15).Value = txtInput(0).innerText
Set txtInput(1) = IE.document.getElementsByClassName(“time”)(1)
Cells(i + 4, 16).Value = txtInput(1).innerText
Set txtInput(2) = IE.document.getElementsByClassName(“fare”)(0)
Cells(i + 4, 17).Value = txtInput(2).innerText
Set txtInput(3) = IE.document.getElementsByClassName(“time”)(2)
Cells(i + 4, 18).Value = txtInput(3).innerText
Set txtInput(4) = IE.document.getElementsByClassName(“fare”)(1)
Cells(i + 4, 19).Value = txtInput(4).innerText
Set txtInput(5) = IE.document.getElementsByClassName(“time”)(3)
Cells(i + 4, 20).Value = txtInput(5).innerText
Set txtInput(6) = IE.document.getElementsByClassName(“fare”)(2)
Cells(i + 4, 21).Value = txtInput(6).innerText
’IE終了
IE.Quit
Next i
End Sub
回答1件
あなたの回答
tips
プレビュー