私は現在、いくつかのExcelワークシート操作を行っているvbaソフトウェアの小さな部分に取り組んでいます。現在、以下のコードのループの最初の反復中に indexOutOfRangeException が発生しています。これをデバッグで実行したところ、配列が要求されたインデックスに値を持っていることがわかりますが、この例外が引き続き発生します。
Private Sub AddReportQuestions(ByRef ReportName As String, ByRef i As Integer,
ByRef domainStart As Integer, ByRef domainEnd As Integer,
ByRef xlReportWorkSheet As Excel.Worksheet,
ByRef xlQuestionWorkSheet As Excel.Worksheet)
Dim row As Integer
row = 0
Dim maxPrintableRow = ((domainEnd - domainStart) * 4) + 7
Dim maxQuestions = (domainEnd - domainStart) + 1
Dim reportRange = xlReportWorkSheet.Range(xlReportWorkSheet.Cells(7, (i * 10) + 1), xlReportWorkSheet.Cells(maxPrintableRow, (i * 10) + 10))
Dim questionRange = xlQuestionWorkSheet.Range("C" & domainStart & ":I" & domainEnd)
Dim questionArray(maxQuestions, 7) As Object
Dim reportArray(maxPrintableRow + 1, 10) As Object
questionArray = questionRange.Value
For j = 0 To maxQuestions
' Question
reportArray(row, 0) = questionArray(j, 0)
' Resize Row Height
xlReportWorkSheet.Rows(row + 7).RowHeight = 45
row += 1
' Response and Comment
reportArray(row, 0) = questionArray(j, 1)
reportArray(row, 2) = questionArray(j, 4)
' Resize Row Height
xlReportWorkSheet.Rows(row + 7).RowHeight = 45
row += 1
' Likelihood and Consequence
reportArray(row, 0) = "Likelihood:"
reportArray(row, 2) = questionArray(j, 2)
reportArray(row, 4) = "Consequence:"
reportArray(row, 6) = questionArray(j, 3)
row += 1
' Divider line
reportArray(row, 0) = "________________________________________________________________________________________________________________________"
row += 1
Next
reportRange.Value = reportArray
End Sub
questionArray は、このコードの違反者です。