@IT会議室は、ITエンジニアに特化した質問・回答コミュニティ「QA@IT」に生まれ変わりました。ぜひご利用ください。
- PR -

Office SR-1→SP3におけるCreateObjectでのエラー

投稿者投稿内容
あい
会議室デビュー日: 2003/06/04
投稿数: 15
投稿日時: 2004-03-04 14:56
----------------------------------------------------------------------
ASP.NETではないのですがここでHitする内容に少しでも近いかと思い
こちらに投稿させていただきます。
もし、会議室が違う場合はお知らせ下さい。
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=3343&forum=7
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=6114&forum=7
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=7581&forum=7
----------------------------------------------------------------------

お世話になっております。あいです。
ASPでエクセルへのエクスポートを行なっています。
VBScriptを使用しております。
クライアントから不具合を聞いたのですが、
OFFICEのバージョンがSR-1の場合は正常に動いていたのですが、
OFFICEのSP3をあてたらエラーになるとのこと。
SR-1からSP3に変わっただけで
CreateObjectのところで実行時エラー429
「ActiveXコンポーネントはオブジェクトを作成できません」
が表示されます。
回避方法がありましたら教えていただきたいと思います。

-----
Set xlbook = CreateObject("Excel.sheet") ←ここでエラーになります
Set xlsheet = xlbook.Worksheets
xlbook.Application.Visible = True

[ メッセージ編集済み 編集者: あい 編集日時 2004-03-04 19:52 ]
OpS
ベテラン
会議室デビュー日: 2003/12/09
投稿数: 50
投稿日時: 2004-03-04 19:04
こんばんは。あいさん。

Set objExcelApp = CreateObject("Excel.Application")
objExcelApp.Workbooks.Open(FileName)
Set objExcelBook = objExcelApp.ActiveWorkbook
Set objExcelSheets = objExcelBook.Worksheets
Set objExcelSheet = objExcelBook.Sheets(1)

ではどうでしょうか。

当方、office2000SP3では動作しました。
あい
会議室デビュー日: 2003/06/04
投稿数: 15
投稿日時: 2004-03-04 21:36
さ・お 様

お返事いいただきありがとうございます。
私の説明不足の為不適切な質問の仕方でしたので、訂正させていただきます。
データの出力で、CreateObjectで新しく作成という考えです。
また処理の際にはExcelを開いておきます。
さ・お様のソースは既定のファイルを使用することになりますよね
参考に実行してみましたが、やはりCreateObjectでエラーが出ます。
CreateObject("Excel.Application")もCreateObject("Excel.sheet")も
エラーは同じで、そこでエラー429が出ています。
同じソースなのにSR-1で動き、SP3で作成されないのがわかりません。
根本的な問題かもしれませんが、どこかの設定の変更などありましたら
お教えいただきますようよろしくお願い致します。

-----
 Dim xlApp
 Dim xlWookSheet
'変数に、CreateObject関数を使ってExcelのSheetオブジェクト作成
 Set xlApp= CreateObject("Excel.Sheet") ←SP3はここでエラーになります
'Workbooks(1)      Workbooksコレクションの1番目のオブジェクト
'WorkSheets("Sheet1")  WorkSheetsコレクションの”Sheet1”という名前のワークシート
 xlWookSheet = xlApp.Application.Workbooks(1).WorkSheets("Sheet1")

[ メッセージ編集済み 編集者: あい 編集日時 2004-03-04 22:17 ]
OpS
ベテラン
会議室デビュー日: 2003/12/09
投稿数: 50
投稿日時: 2004-03-05 09:12
回答ではないです。
あいさんがテストしている環境を教えてください。

「WindowsXP Profession SP1」のクライアントでエラーはでませんでした。
その他のクライアントでこれから調査してみます。
ほむら
ぬし
会議室デビュー日: 2003/02/28
投稿数: 583
お住まい・勤務地: 東京都
投稿日時: 2004-03-05 09:52
ども、ほむらです。
-----
>データの出力で、CreateObjectで新しく作成という考えです。
>また処理の際にはExcelを開いておきます。

すでにExcelが起動しているようにも読み取れるのですが?
すでに開いてるのならばGetObject()でよいと思います。

あとは、Excelのバージョンも指定してみたらどうですか?
Office2000だったらバージョン9だったかな?
(今環境がないので激しく適当だけど確かこんな感じ Excel.9.0.Application ?)
レジストリと”参照”を見ればわかると思います。

#誤字修正ついでにちょっと追記

[ メッセージ編集済み 編集者: ほむら 編集日時 2004-03-05 09:54 ]
あい
会議室デビュー日: 2003/06/04
投稿数: 15
投稿日時: 2004-03-05 10:23
さ・お 様

申し訳ないです。
クライアントでは様々なwindowsの環境で確認されたそうです。
私のほうではwindows2000SeaverでOFFICE SR-1だったものに、SP3をあててみました。
ウイルスチェックもはずして試験した結果です。
ちなみに全く違う環境WinXP OFFICE Excel2002の際にも同じエラーがでました。
なのでOSなどではなく、SP3自体に何らか変化があったのかと思いました。

-*-*-*-*-*-*-*-*-*-*

ほむら様

お返事ありがとうございます。
上記、投稿後後でほむら様の投稿を読ませていただきました。
確認してみます。
ちなみにGetObjectも同じエラーが出ました。
バージョンの指定を試してみます。

[ メッセージ編集済み 編集者: あい 編集日時 2004-03-05 11:40 ]
あい
会議室デビュー日: 2003/06/04
投稿数: 15
投稿日時: 2004-03-05 11:57
さ・お 様

お世話になっております。
さ・お様のソースを私のところで実行してみましたが
最後の所にエラーメッセージを出すようにしてみたら
424 「オブジェクトがありません」
なのでCreateObject("Excel.Application")で
429 「ActiveXコンポーネントはオブジェクトを作成できません」がでます。
たぶんSP3をあててもサーバーのほうでは動くと思いますが
クライアント側で実行ができないのです。
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2004-03-05 12:13
引用:

あいさんの書き込み (2004-03-04 21:36) より:

 Set xlApp= CreateObject("Excel.Sheet") ←SP3はここでエラーになります


 この、CreateObjectの引数ですが、“Excel.Sheet”?
“Excel.Application”ではないですか?

ご参考:
http://support.microsoft.com/default.aspx?scid=kb;ja;213602&Product=xlw2kINT

スキルアップ/キャリアアップ(JOB@IT)