エクセルシート1が見つかりませんとメッセージされます。

タグの編集
投稿者 クウ  (社会人) 投稿日時 2009/1/21 23:40:55
VB6でエクセルファイルのシート1を参照するソフトを作りました。インストールしたパソコンによっては、シート1がありません。作成してくださいとメッセージが出ます。
 パソコンに入っているエクセルのバージョンが2000では OK、2002、2003ではエラーが出ます。
 MSJET35.DLLがあればよいと思っていたのですが、そうでもなかったようです。対処方法を教えてください。
投稿者   (社会人) 投稿日時 2009/1/22 00:52:43
ヒント:事前バインディングと遅延(実行時)バインディング
投稿者 るきお  (社会人) 投稿日時 2009/1/22 04:12:55
かなりヒントが少ないですが知っている人にはわかるものなのでしょうか?

一般的にはその処理をどう作っているかによって対処法も異なると思います。
どのようにプログラムしていますか?
できればプログラムをそのままコピー&貼り付けしてください。
投稿者 neptune  (社会人) 投稿日時 2009/1/22 07:30:46
なぞなぞみたいですが、
貧しい想像力を働かすとこの辺りと思うんですが?
http://support.microsoft.com/kb/239114/ja
http://support.microsoft.com/kb/303528/

やはり環境と、ソースは必要ですね。
投稿者   (社会人) 投稿日時 2009/1/22 17:59:50
>かなりヒントが少ないですが知っている人にはわかるものなのでしょうか?

ヒントが少なすぎたのは申し訳ない。
しかし、言い訳をさせてもらうと、質問者の状況説明も少ないので現状を推理することも難しい。

なので、

>パソコンに入っているエクセルのバージョンが2000では OK、2002、2003ではエラーが出ます。

という部分より参照設定で「Microsoft Excel x.x Object Library」が設定されていると判断した。
設定されているだけだと問題はないんだけど、
Dim xlApp As Excel.Application
Dim xlBook As Excel.Workbook

Set xlApp = New Excel.Application
Set xlBook = xlApp.Workbooks.Open("Excelファイルのパス")

というようにExcelオブジェクトを使用したりバージョン特有の機能なんかを使用していると、参照設定されている固定のバージョンでしか動作しないから。

で、Excelのバージョンに依存しないようにするための調べるキーワードとしてだしたつもり。


一応、質問者に代わって今分かっていることを書き出してみようか。
バージョン:VB6
プログラム内容:Excelファイルを参照するもの
状況:「シート1がありません。作成してください。」とのメッセージが出る。
Excel 2000 ・・・問題なし
Excel 2002, 2003・・・エラー有り
投稿者 るしぇ  (社会人) 投稿日時 2009/1/22 19:59:42
> MSJET35.DLLがあればよいと思っていたのですが
わざわざこんな事を書くからには ADO で Excel に接続している
のかも。。。通常は参照設定してから Excel オブジェクトに
直接アクセスしますから、この時点で、
> VB6でエクセルファイルのシート1を参照するソフトを作りました。
どちらの方法を使っているのか説明できてないですよね。
それでは解決方法は示せません。説明してください。

> シート1がありません。作成してください
見た事がないエラーメッセージですが、
システムが出しているエラーメッセージを正確に書き写したのですか?
『作成してください』なんて言わないと思いますが。
独自のエラーメッセージなら、何してるか(何が起こってるか)分からない
のに対処方法が示せると本気で思っているということでしょうか???
投稿者 neptune  (社会人) 投稿日時 2009/1/22 21:06:30
こんにちは

MSJET35.DLLと参照の関係がよく判らんですよね。
> シート1がありません。作成してください
多分自前のメッセージの予感。

DBオブジェクトを使っているんなら、バージョンによって、可不可があるんで、
多分Jetエンジンのバージョンかサービスパックか?MSJET35.DLLは古いもんですから。

こんな事書いてもかすかに放置の予感。。。
投稿者 るきお  (社会人) 投稿日時 2009/1/22 21:59:25
こんにちは。

>>かなりヒントが少ないですが知っている人にはわかるものなのでしょうか?

>ヒントが少なすぎたのは申し訳ない。
>しかし、言い訳をさせてもらうと、質問者の状況説明も少ないので現状を推理することも難しい。
「ヒントが少ない」というのはまさに質問者のクウさんの説明が少ないという意味で使いました。
直前のnさんの投稿中にある「ヒント」とかぶってしまったのは偶然です。
紛らわしい表現で失礼しました。

しかしながら、みなさん少ない手がかりの中推理を展開されており興味深く読みました。