DOBON.NET どぼん!のVB道掲示板(プログラム)過去ログ

win98SEでExcel操作

Win98SE + Office2000 の環境にて、Excelを使用して帳票出力を
行いたいのですが、
1.Rangeプロパティを参照しようとするところで、オートメーションエラーとなる。
2.そもそも、Excel.Applicationオブジェクトが生成できているか調べようとして、ブレーク入れて、ウォッチリストで見ようとしても、マウスカーソルをExcel.ApplicationオブジェクトにあわせただけでVBが落ちる。

という現象にあい、どう対処してよいかわかりません。試したことは、
以下の組み合わせで同様のプログラムを試しました。
Win98SE + Office97  ×
Win98SE + Ofiice2000 SR-1 ×
Win98SE + Ofiice2000 SP2 ×
Win98SE + Ofiice2000 SP3 ×
Win98SE + OfficeXP ○
上手くいったのは、OfficeXPとの組み合わせだけでした。
また、Excel.Applicationオブジェクトの作成方法として、

1.参照設定した上でNew Excel.Application
2.参照設定した上で、CreateObject
3.参照設定せずにCreateObject

と試してみましたが、いずれも同じ現象となり、オートメーションエラー
となってしまいます。
また、Win98SE にDCOM98をいれても現象は変わりませんでした。
どなたか、アドバイスをいただけないでしょうか、よろしくお願いします。

以下が、いろんな環境で試すときに使用したコードです。
Dim obj_Excel As Excel.Application
Dim obj_Book As Excel.Workbook

Set obj_Excel = New Excel.Application
Set obj_Book = obj_Excel.Workbooks.Open( "C:\hoge\Sample.xls")
obj_Book.ActiveSheet.Range("A1").Select
  • 題名: 回答:win98SEでExcel操作
  • 著者: Kamali
  • 日時: 2003/04/11 17:31:00
  • ID: 942
  • この記事の返信元:
  • この記事への返信:
    • (なし)
  • ツリーを表示
>Win98SE + Office2000 の環境にて、Excelを使用して帳票出力を
>行いたいのですが、
>1.Rangeプロパティを参照しようとするところで、オートメーションエラーとなる。
>2.そもそも、Excel.Applicationオブジェクトが生成できているか調べようとして、ブレーク入れて、ウォッチリストで見ようとしても、マウスカーソルをExcel.ApplicationオブジェクトにあわせただけでVBが落ちる。

オブジェクトの生成とブックOpenまでは動いているということは明らかですね。だって、その先のところでエラーになっているのだから。

>
>という現象にあい、どう対処してよいかわかりません。試したことは、
>以下の組み合わせで同様のプログラムを試しました。
>Win98SE + Office97  ×
>Win98SE + Ofiice2000 SR-1 ×
>Win98SE + Ofiice2000 SP2 ×
>Win98SE + Ofiice2000 SP3 ×
>Win98SE + OfficeXP ○
>上手くいったのは、OfficeXPとの組み合わせだけでした。
>また、Excel.Applicationオブジェクトの作成方法として、
>
>1.参照設定した上でNew Excel.Application
>2.参照設定した上で、CreateObject
>3.参照設定せずにCreateObject
>
>と試してみましたが、いずれも同じ現象となり、オートメーションエラー
>となってしまいます。
>また、Win98SE にDCOM98をいれても現象は変わりませんでした。
>どなたか、アドバイスをいただけないでしょうか、よろしくお願いします。
>
>以下が、いろんな環境で試すときに使用したコードです。
>Dim obj_Excel As Excel.Application
>Dim obj_Book As Excel.Workbook
>
>Set obj_Excel = New Excel.Application
>Set obj_Book = obj_Excel.Workbooks.Open( "C:\hoge\Sample.xls")
>obj_Book.ActiveSheet.Range("A1").Select

この最後の行でエラーが起きているわけですよね。とすれば、
 obj_Book.ActiveSheet
がNullだったということではないでしょうか? 実際、エクセルのバージョンにも因るのかも知れませんが、.Selectする前に、そこをアクティブにする必要があったりしたこと、確かにありますね。
けれど、Excel.Applicationをウォッチできないのはよく分りませんねえ。そもそもオブジェクト変数のような参照変数はウォッチできないのかな??

それから、デバッグの方法として、まずメニューの「デバッグ(D)/dbxxのコンパイル(L)」をして、そもそもコンパイルが通っているかどうかから調べるのが手順ですね。
そして、次はオブジェクト・ブラウザ(F2キー)で、Excelオブジェクトがブラウズできるかどうか。

いろいろ試してみて下さい。

DOBON.NET | プログラミング道 | プログラミング掲示板