• ベストアンサー

えくせる VBA 実行中にマクロ有効形式で保存する

DIM this_book_is AZ ストリングス(綴り解りません)汗; this_book_is = Application.GetSaveAsFilename(Save_Filename,FileFilter:="Excelマクロ有効ファイル,*.xlsm,すべてのファイル,*.*") book1.SaveAs Filename:=this_book_is と、したのですが上手くいきません。 調べると ファイルなんたらを51から52に変更すれば良いとか… でも何処に付加したら良いやら… ご教示をお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • tsubuyuki
  • ベストアンサー率45% (699/1545)
回答No.1

ご提示のコード中の「Save_Filename」は、いわゆる変数です。 コレをString型で宣言してやる必要があります。 加えて、保存する段階でファイル形式を指定してやります。 つまり Dim this_book_is As String, Save_Filename As String   this_book_is = Application.GetSaveAsFilename(Save_Filename,FileFilter:="Excelマクロ有効ファイル,*.xlsm,すべてのファイル,*.*")   book1.SaveAs Filename:=this_book_is, FileFormat:=52 としてやればおそらく上手く保存されるはずです。 「おそらく」と付けた理由は ・このコードの前段で他の作業をしているのであれば、結果が変わる可能性がある ・book1.SaveAsとすると、「book1」を変数名として見られてしまうので、適切ではない  =>これは、例えば現在のブックを保存するなら「ActiveWorkbook.SaveAs」などにするべき ・2003以前のバージョンだと、xlsm形式を認識しないので、コンパイルエラー発生 などです。 以上、参考に。

Nouble
質問者

お礼

book1.SaveAsにFfileFormat:=52をつけたら 解決しました。 何はともあれ、ご教示ありがとうございました。

関連するQ&A