
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で質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excel VBAどこが間違ってますか? 4 2023/07/17 10:04
- Visual Basic(VBA) エクセルのマクロについて教えてください。 3 2023/07/01 12:54
- Visual Basic(VBA) 集めたシートのシート名を変更したい。 下記のコードでサブフォルダにあるファイルのSheet3を集めて 6 2022/08/23 10:38
- Visual Basic(VBA) エクセルのマクロを使ってメールを送る方法について教えてください 2 2022/03/29 01:36
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/02/06 13:01
- Visual Basic(VBA) サブフォルダ(データ)にある複数の.xlsxファイルのSheet3のA2セルの値で01から左側をB2 2 2022/08/14 15:46
- Excel(エクセル) Excelのマクロコードについて教えてください。 1 2022/03/27 10:47
- Visual Basic(VBA) エクセルのマクロについて教えてください 物件ごとのフォルダを作成してます そのフォルダ内にサブフォル 2 2023/07/02 17:58
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/06/04 09:39
- Visual Basic(VBA) 貼り付けた値が消えていく 以下はソースファイルの2番目のシートのB6から最終行を取得 ターゲットファ 2 2023/07/27 12:23
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【関数】同じ関数なのに、エラ...
-
「パス名が無効です」の発生原因
-
access テキストボックスの値取得
-
ExcelVBAで既に開いてるwordを...
-
アクセスのクエリでコンパイル...
-
VBから参照できないCのDLLを使...
-
「複数の選択範囲に対して実行...
-
DisplayAlertsブロパティで ”実...
-
ASPからACCESSのOPENどうしても...
-
fgets関数のEOFの扱い方について
-
EXCEL VBAで複数人でのADO接続...
-
エクセルマクロでエラーの原因...
-
ADOのMoveNextでアプリケーショ...
-
gccを行ってもexeファイルが生...
-
Excel VBAのApplication.Execut...
-
PowerShellを使って関連付けら...
-
ディストリビューションで作成...
-
Returnに対するGoSubがありません
-
EXCEL マクロについて教えてく...
-
ファイルが開けません
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
access テキストボックスの値取得
-
Returnに対するGoSubがありません
-
「パス名が無効です」の発生原因
-
PowerShellを使って関連付けら...
-
NAS上のファイルの使用中が解除...
-
アクセスのクエリでコンパイル...
-
VBでファイルが開かれているか...
-
ExcelVBAで既に開いてるwordを...
-
エクセルマクロでエラーの原因...
-
batファイルでレジストリキーの...
-
【COBOL】read文でエラー
-
VB6 Dir関数で52エラー発生
-
「アクティブ ユーザーが多すぎ...
-
データベースソフトのアクセス2...
-
VBから参照できないCのDLLを使...
-
DisplayAlertsブロパティで ”実...
-
Access2013にてドラッグ&ドロ...
-
ACCESS VBAでのインポート
-
すでにファイルが開かれている...
-
Vba ファイル書き込み時に書き...
おすすめ情報