アプリ版:「スタンプのみでお礼する」機能のリリースについて

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件)

> *** この行で エラーが 発生します。


だから、どの行?
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
'
すみませんが、よろしく お願いします。

補足日時:2014/05/05 20:28
    • good
    • 0

どの行でエラーになりますか?



特定できてないなら、
> 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 の組み合わせで実施した場合は エラーとなりません。

補足日時:2014/05/04 11:47
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています