Excelプロセスが残る、、
プロシージャが完了してもExcelプロセスが解放されずはまってしまったのでメモ。解決までかなり回り道をしてしまった。Accessの再インストールを考えたほどだが、単にコード記載ミスでした。
使用環境
| OS | Windows7Pro64bit |
| Office | Office2010 32bit |
参照設定
プロシージャ
'**********************************************************
'* Excelファイルの最終列最終行を取得
'**********************************************************
Public Function Func1341Nouki() As Boolean
On Error GoTo Err_Func1341Nouki
Dim xlApp As Excel.Application
Dim xlBook As Excel.Workbook
Dim xlSheet As Excel.Worksheet
Dim lngMaxRow As Long
Dim lngMaxCol As Long
'Excel
Set xlApp = CreateObject("Excel.Application")
Set xlBook = xlApp.Workbooks.Open("D:\****.XLS")
Set xlSheet = xlBook.Worksheets("Sheet1")
'列数チェック
lngMaxCol = xlSheet.Cells(1, xlSheet.Columns.Count).End(xlToLeft).Column
'最終行数の変数化
lngMaxRow = xlSheet.Cells(xlSheet.Rows.Count, 1).End(xlUp).Row
'Excel終了処理
xlBook.Close True
xlApp.Quit
Set xlSheet = Nothing
Set xlBook = Nothing
Set xlApp = Nothing
Func1341Nouki = True
MsgBox "inp"
Exit Function
Err_Func1341Nouki:
Func1341Nouki = False
End Function
間違えていた箇所
ColumnsのまえのxlSheet.が抜けていた。変数にセットされるのですっかり見落としていた
正
'列数チェック
lngMaxCol = xlSheet.Cells(1, xlSheet.Columns.Count).End(xlToLeft).Column
'最終行数の変数化
lngMaxRow = xlSheet.Cells(xlSheet.Rows.Count, 1).End(xlUp).Row
誤
'列数チェック
lngMaxCol = xlSheet.Cells(1, Columns.Count).End(xlToLeft).Column
'最終行数の変数化
lngMaxRow = xlSheet.Cells(Rows.Count, 1).End(xlUp).Row







コメント