AccessからExcelのデータを読み込んだ後、Accessを終了させてもプロセスが終了しません。
bookはclose、applicationはquit、オブジェクト変数はnothingというExcelの終了記述をしているので他の問題なのかと思いいろいろ調べて試しましたが解決できません。
Excelのファイル名とシート名はAccessのフォームに貼り付けたテキストボックスの値を取得させていますが下記コードでは省略しています。環境はWin2000Server、Access2000です。
どなたかお気づきの点があればどうぞご教授お願いします。
---------------------------------
Public Sub test()
Dim filename As String
Dim sheetname As String
filename = "c:\パス\ファイル名.xls"
sheetname = "シート名"
'AccessからExcelをオブジェクトとして開く
Dim xlApp As Object
Dim xlBook As Object
Dim xlSheet As Object
Set xlApp = CreateObject("Excel.Application")
Set xlBook = xlApp.Workbooks.Open(filename)
Set xlSheet = xlBook.Worksheets(sheetname)
'Excelの行取得用変数設定
Dim xlrow As Integer 'データ開始行
xlrow = 5
Dim xlrowEnd As Integer 'データ最終行(最終行は合計値が入っているので-1とする)
xlrowEnd = (Range("A5").End(xlDown).Row) - 1
'Excelデータの取り込み
Dim cn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Set cn = CurrentProject.Connection
Set rs = New ADODB.Recordset
rs.Open "a", cn, adOpenKeyset, adLockOptimistic
cn.Execute "delete * from a"
xlrow = 5 'Excelデータの開始行番号
Do While xlrow <= xlrowEnd
rs.AddNew
rs!フィールド1 = xlSheet.Cells(xlrow, 1).Value
rs!フィールド2 = xlSheet.Cells(xlrow, 2).Value
rs.Update
rs.MoveNext
xlrow = xlrow + 1
Loop
'Excelの終了記述
xlBook.Close
xlApp.Quit
Set xlSheet = Nothing
Set xlBook = Nothing
Set xlApp = Nothing
'ADO接続終了記述
rs.Close
Set rs = Nothing
cn.Close
Set cn = Nothing
お礼
ありがとうございます!! 見事にExcelのプロセスがありません!! 感謝感謝です!!m(__)m いろいろ検索している中で 「外部からExelを操作する時にApplication→Workbook→WorkSheetの関係を明示的に示す必要がある」という記述を見つけたのですが、 私がいろいろいじくるとエラーばかり返されすっかり途方にくれていました。 本当にありがとうございました。m(__)mm(__)m