どうも、あおです。
VB.NETでExcel操作を行っている際、よくわからないエラ-が出て、
デバッグ中に落ちました。
エラーの内容を見てみると、
「HRESULT からの例外: 0x800A03EC」
内容を見ても原因不明。コードを目をこらして見直していると、
なんと、範囲指定の開始のindexを「0」にしていました。。
プログラミングしてて、
開始のindexは0始まりというのが身に染み付いてしまってます。
Excelでは、開始のindexは「1」なんですよね。
こういう感じにしてしまってました。
Dim xlsSheet As Excel.Worksheet = Nothing Dim xlsRange As Excel.Range = Nothing xlsRange = DirectCast(xlsSheet.Range(xlsSheet.Cells(0, 9), xlsSheet.Cells(11, 32)), Excel.Range)
そりゃ怒られるわってね。
「0」を「1」に変えて、無事エラーがなくなりました。
Dim xlsSheet As Excel.Worksheet = Nothing Dim xlsRange As Excel.Range = Nothing xlsRange = DirectCast(xlsSheet.Range(xlsSheet.Cells(1, 9), xlsSheet.Cells(11, 32)), Excel.Range)
ちなみにセル指定は、左がRow(行)で右がColumn(列)
xlsSheet.Cells(RowIndex, ColumnIndex)
よくどっちかわからなくなる(笑)ので。