Excel vbaで名前をつけて保存ができない(実行時エラー save as メゾットは失敗しました)
マクロで名前をつけて保存をする時、以前は問題なく保存できていたのに、結構な確率でエラーになります。
色々調べたので軽くまとめておきます。
MicrosoftのHPにこのエラーに関する回避策が載ってました(下記リンク参照)が、fireformat=1 としても上手くいきません。
※この回避策、保存先ファイルは開けないし謎…
[XL2002] エラー メッセージ : 'SaveAs' メソッドは失敗しました: '_Worksheet' オブジェクト
この問題、マクロファイル(xlms)からエクセルファイル(xlsx)として名前をつけて保存する際に発生するエラーと理解しました。
以下のように設定すると回避できました。
ポイントは拡張子(xlsx)をSaveAs Filenameのところに入力しないことと、
Fileformat:=xlOpenXMLWorkbook
を設定すること。
拡張子を入力しないのは問題がないのか分かりませんが、回避できたのでこちらに記録しておきます。
元々は下記のように書いてました。
------------------------------------
Dim 保存先 As String
Dim book As Workbook
保存先="C:¥データ¥一覧.xlsx"
Set book = Active Workbook
book.SaveAs Filename: =保存先
------------------------------------
○エラー回避した書き方
------------------------------------
Dim 保存先 As String
Dim book As Workbook
保存先="C:¥データ¥一覧"
Set book = Active Workbook
book.SaveAs Filename: =保存先, _
Fileformat:=xlOpenXMLWorkbook
↑保存先のファイル名の拡張子を書かないこととFileformatを追記することがポイント
------------------------------------