VB6.0用掲示板の過去のログ(No.2)−VBレスキュー(花ちゃん)
[記事リスト] [新規投稿] [新着記事] [ワード検索] [管理用]

投稿日: 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


- 関連一覧ツリー (★ をクリックするとツリー全体を一括表示します)

- 返信フォーム (この記事に返信する場合は下記フォームから投稿して下さい)

- VBレスキュー(花ちゃん) - - Web Forum -