[リストへもどる]
一括表示

投稿時間:2003/11/18(Tue) 14:42
投稿者名:しまりすよっしー
Eメール:
URL :
タイトル:
VBからExcel操作について
WindowsXP home VB6.0 OfficeXP で開発しています。
参照設定で、「Excel 10.0」「DAO 3.6」を追加
ターゲットは、Windows98SE Office2000 です。

目的:VBからExcelファイルのセルを読み込み、テキストファイルに書き出す。

方法1: [Excel・Word関係]を参考に、目的のプログラムを完成しました。
   しかし、ターゲットにセットアップして実行したところ、Workbooks.Open で落ちてしまいます。
   エラートラップはできず、「不正な処理を行なったので強制終了」されます
   詳細には、「ページ違反です」と書かれています。

Dim xlApp1    As Excel.Application
Dim xlBook1   As Excel.Workbook
Dim xlSheet1  As Excel.Worksheet

    Set xlApp1 = CreateObject("Excel.Application")
→  Set xlBook1 = xlApp1.Workbooks.Open(F_Name)  'オープンするファイル名
    Set xlSheet1 = xlBook1.Worksheets(1)     '最初のシートに書き込み

方法2:DAOでExcelデータを扱う方法を試してみました。
   これは、OpenDatabaseに失敗します。エラートラップはできます。
   ・Excel  8.0・・・3274 外部テーブルのフォーマットが正しくありません
   ・Excel 10.0・・・3170 インストール可能なISAMドライバが見つかりませんでした

Dim DB As DAO.Database
Dim RS As DAO.Recordset

→  Set DB = OpenDatabase(F_Name, False, False, "Excel 8.0;HDR=NO;")
    Set RS = DB.OpenRecordset(xlSheetName)

過去ログやGoogleで検索しましたが、解決方法が分かりません。
特に方法1は、開発用で動作確認ができただけに、残念でなりません。

注意する点や、解決の手がかりなどをご存知の方、ぜひアドバイスを下さい。
よろしくお願いいたします。

投稿時間:2003/11/18(Tue) 16:04
投稿者名:花ちゃん
Eメール:
URL :
タイトル:
Re: VBからExcel操作について
> WindowsXP home VB6.0 OfficeXP で開発しています。
> 参照設定で、「Excel 10.0」「DAO 3.6」を追加
> ターゲットは、Windows98SE Office2000 です。

開発環境と実行環境とではExcelやDAOのバージョンが違うからだと
思います。

投稿時間:2003/11/18(Tue) 17:10
投稿者名:しまりすよっしー
Eメール:
URL :
タイトル:
Re^2: VBからExcel操作について
> > WindowsXP home VB6.0 OfficeXP で開発しています。
> > 参照設定で、「Excel 10.0」「DAO 3.6」を追加
> > ターゲットは、Windows98SE Office2000 です。
>
> 開発環境と実行環境とではExcelやDAOのバージョンが違うからだと
> 思います。

やはりそうですか。
開発環境もターゲットも変更できないので、別の方法を検討してみます。
ありがとうございました。

投稿時間:2003/11/19(Wed) 00:19
投稿者名:花ちゃん
Eメール:
URL :
タイトル:
Re^3: VBからExcel操作について
Excel の方は参照設定を外して(参照設定しないで)

Dim xlApp1    As Object
Dim xlBook1   As Object
Dim xlSheet1  As Object

で使用して見て下さい。
但し、Excelの定数は使用できませんので注意して下さい。

DAOは、Windows98SE なら 3.6 でもOkかと思いますが(私の場合は 3.6が入っています)

>Set DB = OpenDatabase(F_Name, False, False, "Excel 8.0;HDR=NO;")

上記の 8.0 は変更しないで下さい。
F_Name には何が入っていますか? 多分ここが問題かと思うのですが。

まず、Excelの方だけで正常に動作するか確認してから DAO の方を調査して下さい。