投稿者 ちびぞ~  (社会人) 投稿日時 2012/5/14 10:28:16
先日は、設定ファイルについてアドバイスをありがとうございました。
今回は、Excel操作について教えてください。

vb2008でのExcel操作を学習中です。
そこで、以下の不明点についてアドバイスをお願いいたします。

----
Excelにて複数のワークシートに設定されている値をそれぞれ読み込んで
足し算をおこないたい。
その際、計算対象シートに関数エラー(#VALUEなど)が入っていたら、"0"として
計算したい。
----
当初、1セルずつ見て計算をしていったのですが、

1セルずつ読み込むと時間がかかるようなので、
以下のように、対象となるシートを一気に配列にもってきてから計算をおこなうようにしました。

    Dim xlCells As Excel.Range = Nothing
    Dim xlRange1 As Excel.Range = Nothing
    Dim xlRange2 As Excel.Range = Nothing

    Dim xlRange As Excel.Range = Nothing
    Dim data(,) As Object

    xlCells = xlSheet.Cells
    xlRange1 = DirectCast(xlCells(row1, cell1), Excel.Range)
    xlRange2 = DirectCast(xlCells(row2, cell2), Excel.Range)
    xlRange = xlSheet.Range(xlRange1, xlRange2) 

    data = xlRange.Value
  ※以降、dataの内容を集計対象として計算。

ただ、こうすると読み込みは早くのですが関数エラー(#VALUEなど)を取得することが
できず困っています。
関数エラーを取得するには、1セルずつ読んでいくしか方法は無いのでしょうか。

よろしくお願いいたします。