2022年4月2日土曜日

エクセルVBAで、ブック保存(セーブ)するとなると、別名保存、強制上書き、バックアップ作成など、さまざまな方法があるんだな ー SavCopyAs(VBAコマンド)

    
ブックを保存する方法で、コマンドはSave、SaveAs、SaveCopyAsの3つです。
先ず、Saveは上書き保存を行うもので、ActiveWorkbook.Save、の形なんだ。

普通にエクセルの上書き保存と一緒だけど、保存済みのブックを開くのが先決。
新規のブックを上書きしようとしても、出来なくはないが、確認画面が出ます。

マクロを書いたブックであれば、マクロ保存に関する確認を問う画面も出ます。
まあ、こんなコードの書き方をするのは、あくまでも実験ですから一旦終了ね。

それで、保存されたら、どこにファイルが置いてあるのか、確認したくなった。
VBエディターでDebug.Print ActiveWorkbook.Pathと書いて実行してみます。

結果は、C:\Users\user\Documentsに保存され、ファイル名はBook1.xlsx。
つまり、まだ保存のないブックの上書き保存は、特定の場所に自動保存される。

そんな雰囲気ですが、次に”SaveAs”の場合なら、これは名前を付けて保存です。
”As”の付け足しは、英語で”~として”の意味になるので、ブック名を付けます。

もし、保存先を指定したいのなら、次の通りフルパスを指定するのがベターだ。
回答は、ThisWorkbook.SaveAs "C:\Users\ユーザ名\Desktop\Book1"です。

これでデスクトップにBook1という名前で保存されますが、次に移るとしよう。
最後の”SaveCopyAs”ですが、コピーを保存できる記述の意味を知らなかった。

ThisWorkbook.SaveCopyAs "C:\Users\ユーザ名\Desktop\Book2.bak"と。
要するにコピーなので、拡張子に関係なくファイルは保存されるということだ。

まあ、SaveAsの保存時は、指定しなくても自動判断で拡張子を付けてくれます。
そこらへんが違うのですが、バックアップを取るなら”SaveAsCopy”でしょう。

という分けで、バックアップアファイルを作るときに便利なコマンドみたいだ。
実は、まだこのコピーを作成するコマンドは、実際に業務で使用したことがないのですが、タイムスタンプを付けてバックアップを取るような事例が出てきたら、ぜひ活用したいと思ったのでした。



いいねと思ったら、三つポチっとね!
にほんブログ村 スキースノボーブログへにほんブログ村 スキースノボーブログ スキーへにほんブログ村 旅行ブログ 旅日記・旅の思い出へ
にほんブログ村    にほんブログ村      にほんブログ村 



0 件のコメント:

コメントを投稿