
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でも正常に動作させるにはどのような処理を加えれば良いでしょうか?
宜しくお願い致します。
A 回答 (4件)
- 最新から表示
- 回答順に表示
No.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の方は最新のアップデートがなされているのは言うまでもありませんが。
No.3
- 回答日時:
現在、参照設定しているエクセルオブジェクトはどのバージョンでしょうか?
どうも下位互換はうまくないらしく、当方では常時2000のバージョンを参照させています。(EXCEL9.OLB)これで2003、2007に対応しています。
試しにやってみてはいかがでしょう?
ちなみに、ご存知かどうか分かりませんが「OLB」ファイルはセットアップに含めたりして配布するとライセンス規約に反しますので気をつけてください。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセルのマクロを使ってメールを送る方法について教えてください 2 2022/03/29 01:36
- Visual Basic(VBA) 複数のcsvファイルをExcelに一括変換したい 2 2023/03/03 12:44
- Visual Basic(VBA) 【VBA】写真の貼り付けコードがうまく機能しません。 5 2022/09/01 18:43
- Visual Basic(VBA) vbaのエラー対応(実行時エラー7:メモリが不足しています) 4 2023/04/24 00:20
- Visual Basic(VBA) 【前回の続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/16 16:44
- Visual Basic(VBA) Accessフォームで全レコードを指定のExcelのセルへ転送し印刷する方法について 2 2022/09/08 18:23
- Visual Basic(VBA) 【ご教示ください】VBAの記述方法がわかりません。 2 2022/08/12 21:28
- Visual Basic(VBA) VBAでファイルを開くプログラムがエラーです 2 2023/02/21 16:56
- Excel(エクセル) Excel VBAどこが間違ってますか? 4 2023/07/17 10:04
- Visual Basic(VBA) 【前回の続き続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/24 20:49
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
worksheetFunctionクラスのVloo...
-
「Columns("A:C")」の列文字を...
-
[VBA]CDOメッセージ送信エラー
-
VBAで Set wb = Sheets(1).Cop...
-
エクセルのVBAの標準モジュール...
-
AccessVBAで「dim dbs as datab...
-
テキストボックス中の文字列の...
-
VBAで既に開いている別アプリケ...
-
ExcelVBAでのNZ関数について
-
実行時エラー 3265「要求された...
-
Excel VBA Collection.add で R...
-
コンパイルエラーの対処がわか...
-
横軸ラベルの追加に関するエラ...
-
Excel VBAでWordの複数ファイル...
-
「オブジェクト変数または With...
-
Excelでフィルタをかけると警告...
-
(初心者です)VBAについて。「実...
-
エクセル エラー438
-
アクセスにてオブジェクト名変...
-
エクセルマクロエラー「'Cells'...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
worksheetFunctionクラスのVloo...
-
「Columns("A:C")」の列文字を...
-
エクセルのVBAの標準モジュール...
-
Excelでフィルタをかけると警告...
-
実行時エラー 3265「要求された...
-
VBAで既に開いている別アプリケ...
-
テキストボックス中の文字列の...
-
ExcelVBAでのNZ関数について
-
[VBA]CDOメッセージ送信エラー
-
EXCEL VBA オートシェイプナン...
-
VBAで Set wb = Sheets(1).Cop...
-
エクセルマクロエラー「'Cells'...
-
AccessVBAで「dim dbs as datab...
-
Excel VBAでWordの複数ファイル...
-
オブジェクトが見つかりません
-
CreateObjectとGetObjectの違い
-
エクセルVBAで配列内に空白デー...
-
オブジェクト変数またはWITHブ...
-
VBScriptからDLL参照設定したい
-
エクセルVBAでcode128のバー...
おすすめ情報