Google
 
Web itpro-blogger.blogspot.com
日曜日, 1月 18, 2009

[VB2005]ExcelのValue値取得

▼質問
ExcelのValue値を取得したいんだ。

どうしたらできるか教えてくれ!

▼回答
サンプルを示すから参考にしてくれ!!



Public Shared Sub GetExcelValue(ByVal strFilePath As String, _
ByRef val(,) As Object, _
Optional ByVal maxRow As Integer = 65536)
Dim xlApp As Excel.Application = Nothing

Try

xlApp = CreateObject("Excel.Application")

If IsNothing(xlApp) Then Exit Sub

xlApp.Workbooks.Open(Filename:=strFilePath)
xlApp.WindowState = Excel.XlWindowState.xlMinimized
xlApp.Visible = False
xlApp.DisplayAlerts = False
xlApp.ScreenUpdating = False

Dim wWorksheet As Excel.Worksheet = _
CType(xlApp.ActiveWorkbook.ActiveSheet, Excel.Worksheet)

With wWorksheet
.Unprotect()

Application.DoEvents()

'Value値取得(全セルを取得するとメモリのエラーになるので注意が必要!)
val = .Range("A1:IV" & maxRow).Value

End With

GC.Collect()

Catch ex As Exception

Finally

If (Not IsNothing(xlApp)) Then xlApp.Quit()
xlApp = Nothing

GC.Collect()

End Try

End Sub



これを実行すると面白い事が起きる。

配列の始まりが1から始まるのだ!

VB6では、Dim obj(1 To 3) As Object ができたけどね!

VB.NETからは、0始まりしか作れない。痛い(>_<)

なぜ、Excelだけ1からの配列が作れるんだ!?

不思議だ!!






Comments: コメントを投稿

<< Home

This page is powered by Blogger. Isn't yours?