【VB】【エクセル操作】 SaveAsでエラーが出てしまいま...

VB6.0で作成したソフトの一部でエクセルを操作する箇所があります。

『新しいブックを作成して名前を付けて保存する』ところでエラーが出てしまいます。
Excel2007,2003では正常に動作するのですが、2000ではエラーが発生し強制終了されてしまいます。

'////////////////////////////////////////////////////////////
Private Sub EditExcelFile(FileName As String)

Dim xlApp As Excel.Application
Dim xlBook As Excel.Workbook

Set xlApp = CreateObject("Excel.Application")
Set xlBook = xlApp.Workbooks.Add

xlApp.Visible = True

With xlBook
.Application.DisplayAlerts = False
.SaveAs (FileName)
.Application.DisplayAlerts = True
End With

Set xlBook = Nothing
Set xlApp = Nothing

End Function
'////////////////////////////////////////////////////////////

上記コードの .SaveAs (FileName)の箇所でエラーがでます。
.SaveAs (FileName)をコメント文にすると2000でも正常に動作します。
FileNameは新しいブック名のパスが入ります。

2000でも正常に動作させるにはどのような処理を加えれば良いでしょうか?
宜しくお願い致します。

投稿日時 - 2007-12-14 11:39:28

QNo.3597350

困ってます

このQ&Aは役に立ちましたか?

3人が「このQ&Aが役に立った」と投票しています

[  前へ  |  次へ ]

回答(4件中 1~4件目)

ANo.4

No3さんの回答にあるようにObjectLibraryの違いだと思われます。
参照設定
xl2000 : Microsoft Office 9.0 Object Library
xl2003 : Microsoft Office 11.0 Object Library

普通こういった場合はバージョンの違いを回避するために実行バインティングを使用してほうがいいのかも知れません。

>Dim xlApp As Excel.Application
>Dim xlBook As Excel.Workbook

 Dim xlApp As Object
 Dim xlBook As Object

でどうでしょうか。
 
もちろん、xl2000の方は最新のアップデートがなされているのは言うまでもありませんが。
 

投稿日時 - 2007-12-14 15:18:02

ANo.3

現在、参照設定しているエクセルオブジェクトはどのバージョンでしょうか?
どうも下位互換はうまくないらしく、当方では常時2000のバージョンを参照させています。(EXCEL9.OLB)これで2003、2007に対応しています。
試しにやってみてはいかがでしょう?

ちなみに、ご存知かどうか分かりませんが「OLB」ファイルはセットアップに含めたりして配布するとライセンス規約に反しますので気をつけてください。

投稿日時 - 2007-12-14 13:39:06

ANo.2

Cmi

>2000以前のExcelが入ったPCでexeファイルを作成する必要があるということでしょうか?

他にも方法があるかもしれませんが、それが一番良いと思います。

投稿日時 - 2007-12-14 12:58:59

ANo.1

Cmi

お使いのEXCELオブジェクトの互換の問題ではないでしょうか?

2000でも使う場合は、作成時のEXCELオブジェクトは2000以前の物である必要があると思います。

投稿日時 - 2007-12-14 11:47:45

お礼

早速のご回答ありがとうございます。

2000以前のExcelが入ったPCでexeファイルを作成する必要があるということでしょうか?
(現在、Excel2003が入ったPCにてVBプロジェクトの作成をしております。)



【質問文の補足】
質問文中のExcel2007,2003,2000はそれぞれ別のPCに入っています。

投稿日時 - 2007-12-14 12:08:53

あなたにおすすめの質問

[PR] お役立ち情報