|
Excel表の有効データ範囲を自動的に求め、最大値を求めてからデータ処理をするアプリを作成しています。NULデータを見つけ境界を探しましたが、ゼロの値のあるときはそこが境界と認識してしまいます。
UsedRangeを使うと文字列の形で配列の範囲が与えられましたが、配列のインデックス値を使いたい処理では使いにくいところがあります。
Excelの空欄を参照するのにNothingを使うという説明を見つけましたので、これを使ってみました。下記はSAMPLE.xlsのセルの有効範囲を求め、この中の最大値を求めるためのプログラム例です。
しかし、ゼロのデータが含まれていると空欄とみなしてしまい、うまく有効データ範囲が求められません。
何か良い方法があればご教示ください。
Dim xlApp As Excel.Application
Dim xlBook As Excel.Workbook
Dim xlSheet As Excel.Worksheet
Dim Line, Column As Integer
Dim j, k, max, value, rate, L, C, Lmax, Cmax As Integer
xlApp = CreateObject("Excel.Application")
xlBook = xlApp.Workbooks.Open("C:\VB.NET\SAMPLE.xls") ' Excel ファイルのオープン")
xlApp.Application.Visible = True 'Excel を表示する。
xlApp.Parent.Windows(1).Visible = True
xlSheet = xlBook.Worksheets("Sheet1")
L = 1
C = 1
Lmax = 0
Cmax = 0
max = 0
Do
If xlSheet.Cells(L, C).value = Nothing Then
If C = 1 Then
Lmax = L
Exit Do
End If
Cmax = C
L = L + 1
C = 1
Else
If xlSheet.Cells(L, C).value > max Then
max = xlSheet.Cells(L, C).value
End If
C = C + 1
End If
Loop
|
|