- 締切済み
【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でも正常に動作させるにはどのような処理を加えれば良いでしょうか? 宜しくお願い致します。
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- onlyrom
- ベストアンサー率59% (228/384)
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の方は最新のアップデートがなされているのは言うまでもありませんが。
- toshi_yuki
- ベストアンサー率66% (4/6)
現在、参照設定しているエクセルオブジェクトはどのバージョンでしょうか? どうも下位互換はうまくないらしく、当方では常時2000のバージョンを参照させています。(EXCEL9.OLB)これで2003、2007に対応しています。 試しにやってみてはいかがでしょう? ちなみに、ご存知かどうか分かりませんが「OLB」ファイルはセットアップに含めたりして配布するとライセンス規約に反しますので気をつけてください。
- Cmi
- ベストアンサー率36% (132/364)
>2000以前のExcelが入ったPCでexeファイルを作成する必要があるということでしょうか? 他にも方法があるかもしれませんが、それが一番良いと思います。
- Cmi
- ベストアンサー率36% (132/364)
お使いのEXCELオブジェクトの互換の問題ではないでしょうか? 2000でも使う場合は、作成時のEXCELオブジェクトは2000以前の物である必要があると思います。
お礼
早速のご回答ありがとうございます。 2000以前のExcelが入ったPCでexeファイルを作成する必要があるということでしょうか? (現在、Excel2003が入ったPCにてVBプロジェクトの作成をしております。) 【質問文の補足】 質問文中のExcel2007,2003,2000はそれぞれ別のPCに入っています。