may the VBA be with you

Excel VBAとか業務自動化とか

VBAなんだかんだ その2 ブックを保存して閉じる

はじめに

えー、

vba-belle-equipe.hatenablog.com

前回と同じです。

やりたいこと

「Workbooks.Add」で作成した新規ブックを保存して閉じる、です。

調べる

vba ブックを保存」で調べると、すぐに出てきます。

ActiveWorkbook.SaveAs Filename:="[保存先パス&ファイル名]"
ActiveWorkbook.Close

これは、楽勝かな?

試す

保存先パスとファイル名って、

Sub ccc()
  ActiveWorkbook.SaveAs Filename:="C:\test\test.xlsx"
  ActiveWorkbook.Close
End Sub

こういうことだよね?

怒られる

実行時エラー'1004':

ファイル'C:\test'にアクセスできません。~~ほにゃらら~~

おお。エラーね。そうね。

試しただけだよ。フォルダがなくても作ってくれるかどうか。

再度試す

Cドライブ直下に「test」フォルダを作って実行

ローカル ディスク(C:)
 └test
  └test.xlsx

保存されました。

なんか、あっさりいきすぎるのも物足りないですな。

それはまた、別の話?

「ActiveWorkbook」って、アクティブになってないとダメですよね(当たり前)

Sub ccc()
  Workbooks("Book2").SaveAs Filename:="C:\test\test.xlsx"
  Workbooks("Book2").Close
End Sub

こっちのほうがいいのかなあ。

あ、でも、ブック名変わってるからCloseできないな。

そこも変えればいい・・・のか?


ま、いっか。通しで実行する時にどうするか考えよう。

まとめ

個々の機能実現のために、色々な書き方のパターンを知っておくことは大事です。

ただ、あまり深く突っ込まないことも大事です(言い訳です)。