
EXCEL ファイルの VBAで、 OneDrive上の ファイルを コピーして XLSX および XLS旧フォーマット 両方の 保存形式で ファイルを 保管しようとしています。
WINDOWS8.1 EXCEL2013 を 使用しています。
ONEDRIVE上へ、コピー作成する同名ファイルがなく、 新規のファイルを コピー作成する場合は 『Microsoft Excelは動作を停止しました。』 というエラーが (ファイルをコピー作成していますが)、 出てしまいます。
上書きする場合は エラー がでない模様です。
'
Sub 旧EXCEL形式保管()
'
Application.DisplayAlerts = False
'
Dim PathName, FileName1, FileName2, FileName3 As String
'
PathName = ActiveWorkbook.Path
FileName1 = "テスト.xlsx"
FileName2 = "テストCOPY旧.xls"
FileName3 = "テストCOPY新.xlsx"
'
Workbooks.Open Trim(PathName) & "\" & Trim(FileName1)
Windows(Trim(FileName1)).Activate
'
ActiveWorkbook.SaveAs Filename:=Trim(PathName) & "\" & Trim(FileName3)
ActiveWorkbook.Close
'
Workbooks.Open Trim(PathName) & "\" & Trim(FileName1)
Windows(Trim(FileName1)).Activate
'
If Application.Version < 12 Then
ActiveWorkbook.SaveAs Filename:=Trim(PathName) & "\" & Trim(FileName2), FileFormat:=xlExcel9795
Else
ActiveWorkbook.SaveAs Filename:=Trim(PathName) & "\" & Trim(FileName2), FileFormat:=xlExcel8
End If
'
ActiveWorkbook.Close
'
End Sub
'
より効率的な VBA記述、 エラーへの対処方法 を 教えていただけないでしょうか?
よろしく お願いします。
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
> *** この行で エラーが 発生します。
だから、どの行?
ActiveWorkbook.SaveAsの行? ActiveWorkbook.Closeの行?
SaveAsの行なら、
> FileFormat:=xlExcel8
の右辺を定数値[56]にしてみる。
Closeの行なら、Quitにしてみる。
この回答への補足
エラーが出る行を ご指摘のとおり 下記のように 変更してみましたが、同様の エラーが まだ発生します。
If Application.Version < 12 Then
ActiveWorkbook.SaveAs Filename:=Trim(PathName) & "\" & Trim(FileName2), FileFormat:=xlExcel9795
Else
''' ActiveWorkbook.SaveAs Filename:=Trim(PathName) & "\" & Trim(FileName2), FileFormat:=xlExcel8
ActiveWorkbook.SaveAs Filename:=Trim(PathName) & "\" & Trim(FileName2), FileFormat:=56
End If
'
すみませんが、よろしく お願いします。
No.1
- 回答日時:
どの行でエラーになりますか?
特定できてないなら、
> Application.DisplayAlerts = False
をやめて、F8で一行ずつ実行。
この回答への補足
さっそくの 回答ありがとうございます。
If Application.Version < 12 Then
ActiveWorkbook.SaveAs Filename:=Trim(PathName) & "\" & Trim(FileName2), FileFormat:=xlExcel9795
Else
*** ActiveWorkbook.SaveAs Filename:=Trim(PathName) & "\" & Trim(FileName2), FileFormat:=xlExcel8
End If
*** この行で エラーが 発生します。
言い忘れていましたが、 Windows7 Excel2010 の組み合わせで実施した場合は エラーとなりません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
access テキストボックスの値取得
-
batファイルでレジストリキーの...
-
Returnに対するGoSubがありません
-
「パス名が無効です」の発生原因
-
PowerShellを使って関連付けら...
-
Excel 2003 のエラーメッセージ
-
gccを行ってもexeファイルが生...
-
fcloseで発生するエラーについて。
-
【関数】同じ関数なのに、エラ...
-
NAS上のファイルの使用中が解除...
-
エクセル Fill.UserPictureで...
-
エクセルで質問です。 ハイパー...
-
EXCEL マクロについて教えてく...
-
ASP.NET 2.0にてアプリが動作し...
-
排他ロックが掛かっているファ...
-
DisplayAlertsブロパティで ”実...
-
VB:「実行時エラー53 実行ファ...
-
Request.BinaryReadでのエラー
-
VB6 Dir関数で52エラー発生
-
VBA★ブックがactivateできま...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【関数】同じ関数なのに、エラ...
-
access テキストボックスの値取得
-
エクセルで質問です。 ハイパー...
-
「パス名が無効です」の発生原因
-
PowerShellを使って関連付けら...
-
NAS上のファイルの使用中が解除...
-
gccを行ってもexeファイルが生...
-
アクセスのクエリでコンパイル...
-
ExcelVBAで既に開いてるwordを...
-
Returnに対するGoSubがありません
-
VB6 Dir関数で52エラー発生
-
VBでファイルが開かれているか...
-
データベースソフトのアクセス2...
-
エクセルマクロでエラーの原因...
-
fcloseで発生するエラーについて。
-
batファイルでレジストリキーの...
-
FORTRANの実行エラーについて
-
VBから参照できないCのDLLを使...
-
【COBOL】read文でエラー
-
DisplayAlertsブロパティで ”実...
おすすめ情報