dポイントプレゼントキャンペーン実施中!

自動売買ロボット作成マニュアルという本のなかに株価をダウンロードするためのプログラムとしてソースが書かれているのですが、オーバーフローとなってしまい、実行できません。lastrow = (Range("B4").End(xlDown).Row + 1)のところでオーバーフローを起こします。この文章だけでは対処できないと思いますのでプログラムを写します。
恐れ入りますが、お助けください。
Sub Calc()


Dim code As String
Dim data_length As Integer, date_temp As Date
Dim day_s As Integer, month_s As Integer, year_s As Integer
Dim day_e As Integer, month_e As Integer, year_e As Integer
Dim row_length As Integer

code = input_temp(2)

data_length = -100

date_temp = DateAdd("d", data_length, Now)

day_e = Day(Now)
month_e = Month(Now)
year_e = Year(Now)
day_s = Day(date_temp)
month_s = Month(date_temp)
year_s = Year(date_temp)

Range("B4:R65000").ClearContents

For i = 0 To Abs(data_length) * 0.65 Step 50

If i = 0 Then

lastrow = "4"

For wtbl = 19 To 25
url = "URL;http://table.yahoo.co.jp/t?s=" & code & "&a=" & month_s & "&b=" & day_s & "&c=" & year_s & "&d=" & month_e & "&e=" & day_e & "&f=" & year_e & "&g=d&q=t&y=" & i & "&z=" & code & "&x=.csv"
Call Get_Data
If Range("B4") = "日付" Then
Exit For
Else
Range("B4:H54").ClearContents
End If
Next
Else
url = "URL;http://table.yahoo.co.jp/t?s=" & code & "&a=" & month_s & "&b=" & day_s & "&c=" & year_s & "&d=" & month_e & "&e=" & day_e & "&f=" & year_e & "&g=d&q=t&y=" & i & "&z=" & code & "&x=.csv"
lastrow = (Range("B4").End(xlDown).Row + 1)
Call Get_Data
Range("B" & lastrow, "H" & lastrow).Delete
row_length = (Range("B4").End(xlDown).Row)
If row_length - lastrow < 49 Then
Exit For
End If
End If

Next

Range("B5:H65000").Sort Key1:=Range("B5")

lastrow = Range("B4").End(xlDown).Row

Range("B5", "B" & lastrow).NumberFormatLocal = "yyyy/mm/dd"
Range("C5", "H" & lastrow).NumberFormatLocal = "0"

Range("A1").Select

End Sub


Sub Get_Data()

With ActiveSheet.QueryTables.Add(Connection:=url, Destination:=Cells(lastrow, 2))
.Name = "Yahoo"
.FieldNames = False
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = False
.RefreshPeriod = 0
.WebSelectionType = xlSpecifiedTables
.WebFormatting = xlWebFormattingNone
.WebTables = wtbl
.WebPreFormattedTextToColumns = True
.WebConsecutiveDelimitersAsOne = True
.WebSingleBlockTextImport = False
.WebDisableDateRecognition = False
.Refresh BackgroundQuery:=False
End With
End Sub

A 回答 (1件)

Integerの値域を越えているためでは無いでしょうか ・・・


ExcelVBAのIntegerは -32768から32767までです
これを超える範囲の整数が必要ならば Long型を使用しましょう
    • good
    • 0
この回答へのお礼

ご回答いただきありがとうございました。
Long型にしたら、このエラーは消えました。

お礼日時:2008/11/25 06:17

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!