Excelプロセスが残る、、
プロシージャが完了してもExcelプロセスが解放されずはまってしまったのでメモ。解決までかなり回り道をしてしまった。Accessの再インストールを考えたほどだが、単にコード記載ミスでした。
使用環境
OS | Windows7Pro64bit |
Office | Office2010 32bit |
参照設定
プロシージャ
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
'********************************************************** '* 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
コメント