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
このQ&Aは役に立ちましたか?
3人が「このQ&Aが役に立った」と投票しています
回答(4件中 1~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
お使いの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
あなたにおすすめの質問
- CreateObject関数 引数に... CreateObject関数 引数にパスワード
- CreateObjectでエラー発生... CreateObjectでエラー発生(Excel2007が悪い?)
- Workbook Workbook
- VB6.0上でExcelオブジェクト... VB6.0上でExcelオブジェクトを生成
- VBAの「This Workbook... VBAの「This Workbook」について
- エクセル(複数インスタンス)より任意... エクセル(複数インスタンス)より任意のWorkBookを取得したい
- なぜ「Workbook」ではなく「W... なぜ「Workbook」ではなく「Workbook
- VB2008でのExcelオブジェク... VB2008でのExcelオブジェクトの宣言と解放
- Excel の WorkBookオー... Excel の WorkBookオープンとWorkBookアクティブの
- Excel.Applicationへ... Excel.Applicationへのシートコピー



