投稿日 | : 2006/12/22(Fri) 10:34 |
投稿者 | : ぴろ |
Eメール | : |
URL | : |
タイトル | : DAOでのExcelのデータ取得について |
はじめて投稿させていただきます、ぴろと申します。
<環境>
Windows2000/XP
Excel2000/2003
VB6.0 SP5
ファイル自体への保護がかかっているExcelファイルから
データ取得を行いたいと思っています。
(Excelはマクロを含んでいます。)
DAOでの取得を考え実行してみたのですが、
「3161 ファイルを解読できませんでした。」
とエラーが発生し、思うようにデータ取得を行えませんでした。
その為、Excelファイルを一度オープン(パスワード指定)し、
パスワード解除を行ってからDAOでのデータ取得をしてみました。
すると、データはうまく取得することができたのですが、
Excelのプロセスが残ってしまいます。
プロセスを残さずに終了させることができないでしょうか。
どなたか、ご教示ください。よろしくお願いします。
<ソース>
Dim objExcel As Object
Dim objExWork As Object
Dim daoDB As DAO.Database
Dim tb As DAO.Recordset
Set objExcel = CreateObject("Excel.Application")
'マクロイベント停止
objExcel.EnableEvents = False
'Excelファイルオープン
Set objExWork = objExcel.Workbooks.Open("C:\test.xls", , , , "pass")
'DAOオープン
Set daoDB = DAO.DBEngine.Workspaces(0).OpenDatabase("C:\test.xls", _
False , _
True, _
"EXCEL 8.0")
Set tb = daoDB.OpenRecordset("SELECT 〜", dbOpenDynaset)
Do While Not tb.EOF
Debug.Print tb("項目名")
tb.MoveNext
Loop
tb.Close
daoDB.Close
objExWork.saved = True
objExWork.Close
objExcel.Quit
Set objExWork = Nothing
Set objExcel = Nothing
Set tb = Nothing
Set daoDB = Nothing