Private Sub ReadExcel() Dim ObjExcel As Object = Nothing Dim ObjWorkBooks As Object = Nothing Dim ObjWorkBook As Object = Nothing Dim ObjSheets As Object = Nothing Dim ObjSheet As Object = Nothing Dim ObjRange1 As Object = Nothing Dim ObjRange2 As Object = Nothing Dim ObjRange3 As Object = Nothing Try ObjExcel = CreateObject("Excel.Application") ObjWorkBooks = ObjExcel.Workbooks ObjWorkBook = ObjWorkBooks.Open(ExcelFileFullPath) ObjSheets = ObjWorkBook.Worksheets For I = 1 To ObjSheets.Count ObjSheet = ObjSheets(1) Dim SheetName As String = ObjSheet.Name ObjRange1 = ObjSheet.Range("A1:Z65535") ObjRange2 = ObjRange1.SpecialCells(11) Dim MaxX As Integer = ObjRange2.Column Dim MaxY As Integer = ObjRange2.Row Dim wkStrRange As String = "A1:" wkStrRange &= String.Format("{0}{1}", S01_02_GetA1(MaxX), MaxY) ObjRange3 = ObjSheet.Range(wkStrRange) Dim ExcelValArr As Object(,) = ObjRange3.Value ReleaseObject(ObjRange3) ReleaseObject(ObjRange2) ReleaseObject(ObjRange1) ReleaseObject(ObjSheet) Next I Finally ReleaseObject(ObjRange3) ReleaseObject(ObjRange2) ReleaseObject(ObjRange1) ReleaseObject(ObjSheets) 'Excelファイルを閉じる If IsNothing(ObjWorkBook) = False Then ObjWorkBook.Close(False) ReleaseObject(ObjWorkBook) ReleaseObject(ObjWorkBooks) 'Excelを閉じる If IsNothing(ObjExcel) = False Then ObjExcel.Quit() ReleaseObject(ObjExcel) End Try End Function 'ExcelのR1C1形式の列番号をA1形式の列名称に変換 Private Function S01_02_GetA1(pRetuBangou As Integer) As String Dim WillReturn As String = "" For I = 1 To pRetuBangou If I = 1 Then WillReturn = "A" Continue For End If Dim AddPlace As Integer = WillReturn.Length - 1 Do If AddPlace = -1 Then WillReturn = "A" + WillReturn Exit Do End If If WillReturn(AddPlace) <> "Z"c Then Dim wkStr As String = Chr(Asc(WillReturn(AddPlace)) + 1).ToString WillReturn = WillReturn.Insert(AddPlace, wkStr) WillReturn = WillReturn.Remove(AddPlace + 1, 1) Exit Do End If If WillReturn(AddPlace) = "Z"c Then WillReturn = WillReturn.Insert(AddPlace, "A") WillReturn = WillReturn.Remove(AddPlace + 1, 1) AddPlace -= 1 Continue Do End If Loop Next I Return WillReturn End Function 'Excelオブジェクトの解放 Private Sub ReleaseObject(pObj As Object) If IsNothing(pObj) = False Then Runtime.InteropServices.Marshal.ReleaseComObject(pObj) pObj = Nothing End If End Sub