rikomemo

りこめも

おちび(5才)の子育て記録。その他雑記。

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を追記することがポイント

------------------------------------