エクセル業務に役立つ!1クリックでバックアップ保存ができるVBA

Left Caption

豆父ちゃん

データ保存する時に自動的にバックアップを取りたい。なんかいい方法はないの?

こんな方のために、簡単にバックアップ保存できるVBAを紹介します。

 

広告

バックアップ保存VBAとは

エクセルファイルを保存するときは名前をつけて保存、もしくは上書き保存をしている方がほとんどだと思います。

バックアップ保存VBAは1クリックで上書き保存+バックアップフォルダに保存できるシステムです。

このシステムを使って保存をすれば、日頃使っているエクセルファイルが壊れたり消されたりしてもバックアップがあるので安心です。

下記で紹介するサンプルVBAの使い方はバックアップ用フォルダを作成し、そのフォルダの場所を登録するだけ。この設定を1度行うだけで毎回バックアップをとりながらデータ保存が可能になります。

 

バックアップ保存VBAの設定方法

バックアップ保存用のフォルダを作成

適当な場所にフォルダを作成。この作成したフォルダにバックアップ用のデータがどんどん保存されていきます。

 

設定sheetを作成

設定sheetに先程作成したフォルダの場所を指定します。既にあるフォルダに保存したい場合はそのフォルダの場所を指定してください。

バックアップ保存ボタンを作成

ユーザーフォームでボタンを作成し、VBAを登録。実行すると指定したフォルダにエクセルファイルが保存されます。

エクセルファイルがどのように使われているかでVBAの実行方法が異なります。サンプルではユーザーフォームでVBAを実行させていますが、他にも任意のセルをクリックして実行ボタンを作成して実行などいろんな方法があります。

下記の記事ではVBAの実行について詳しく紹介しています。

バックアップVBAをどのように実行方法させればよいか迷っている方は参考にしてみてください。

 

バックアップ保存VBAのサンプル

サンプルVBAをコピーするだけですぐにあなたのエクセルファイルで使うことができます。バックアップ保存しなければならない重要なエクセルファイルへ導入してみましょう。

バックアップ保存VBA【年別更新】

1 Sub 年別バックアップ()
2 Application.ScreenUpdating = False
3 Dim Ash As Worksheet
4 Set Ash = Worksheets(“設定")
5 Dim FName, FPath, BFolder, SaveBackupFolder, SaveFolder As String
6 Dim Ye As Long
7 Ye = Year(Now)
8 FName = ThisWorkbook.Name
9 FPath = ActiveWorkbook.Path
10 BFolder = Ash.Cells(3, 2)
11 If Dir(BFolder, vbDirectory) = “" Then
12 MsgBox “フォルダは存在しません。"
13 Exit Sub
14 End If
15 SaveBackupFolder = BFolder & “\" & “(" & Ye & “年)" & FName
16 SaveFolder = FPath & “\" & FName
17 Application.DisplayAlerts = False
18 ThisWorkbook.SaveAs SaveBackupFolder
19 ThisWorkbook.SaveAs SaveFolder
20 Application.DisplayAlerts = True
21 End Sub

 

バックアップ保存VBA【月別更新】

1 Sub 月別バックアップ()
2 Application.ScreenUpdating = False
3 Dim Ash As Worksheet
4 Set Ash = Worksheets(“設定")
5 Dim FName, FPath, BFolder, SaveBackupFolder, SaveFolder As String
6 Dim Ye, Mo As Long
7 Ye = Year(Now)
8 Mo = Month(Now)
9 FName = ThisWorkbook.Name
10 FPath = ActiveWorkbook.Path
11 BFolder = Ash.Cells(3, 2)
12 If Dir(BFolder, vbDirectory) = “" Then
13 MsgBox “フォルダは存在しません。
14 Exit Sub
15 End If
16 SaveBackupFolder = BFolder & “\" & “(" & Ye & “年" & Mo & “月)" & FName
17 SaveFolder = FPath & “\" & FName
18 Application.DisplayAlerts = False
19 ThisWorkbook.SaveAs SaveBackupFolder
20 ThisWorkbook.SaveAs SaveFolder
21 Application.DisplayAlerts = True
22 End Sub

 

バックアップ保存VBA【日別更新】

1 Sub 日別バックアップ()
2 Application.ScreenUpdating = False
3 Dim Ash As Worksheet
4 Set Ash = Worksheets(“設定")
5 Dim FName, FPath, BFolder, SaveBackupFolder, SaveFolder As String
6 Dim Ye, Mo, Da As Long
7 Ye = Year(Now)
8 Mo = Month(Now)
9 Da = Day(Now)
10 FName = ThisWorkbook.Name
11 FPath = ActiveWorkbook.Path
12 BFolder = Ash.Cells(3, 2)
13 If Dir(BFolder, vbDirectory) = “" Then
14 MsgBox “フォルダは存在しません。"
15 Exit Sub
16 End If
17 SaveBackupFolder = BFolder & “\" & “(" & Ye & “年" & Mo & “月" & Da & “日)" & FName
18 SaveFolder = FPath & “\" & FName
19 Application.DisplayAlerts = False
20 ThisWorkbook.SaveAs SaveBackupFolder
21 ThisWorkbook.SaveAs SaveFolder
22 Application.DisplayAlerts = True
23 End Sub

 

バックアップ保存VBAの実行結果

VBAを実行すると上書き保存されると同時にバックアップフォルダに保存されます。

保存されるファイルの名前は、(日付)エクセルファイル名となります。エクセルファイル名に日付を付け加えることでいつ更新されたのか一目で判別できるようになります。サンプルでは更新頻度が異なるバックアップVBAを3つ紹介しています。

 

年間更新のバックアップ保存VBA

→(2020年)エクセルファイル名

 

月間更新のバックアップ保存VBA

→(2020年9月)エクセルファイル名

 

日付毎更新のバックアップ保存VBA

→(2020年9月24日)エクセルファイル名

既にあるエクセルファイルの名前とバックアップとして保存するエクセルファイルの名前が同じ場合は上書き保存。違った場所は名前をつけて保存。という結果になります。

バックアップ保存VBAの使い方

バックアップ保存VBAは重要なエクセルファイルに導入しましょう。

重要で使用頻度が高いエクセルファイルには日付毎にバックアップをするVBAを、重要だけど使用頻度が少ないエクセルファイルには年間毎にバックアップをするVBAを導入するようにしましょう。

例えば、

年間カレンダーとして使っているエクセルファイルは年別更新、週間カレンダーとして使っているエクセルファイルは日別更新!

といったように選定します。

このようにバックアップをする頻度の選定をすることで、バックアップファイルが作られてすぎてデータ容量を占有してしまう!ということがなくなります。

VBA初心者が効率化マクロを導入する方法

 

VBAなんて扱ったことないけどエクセル作業を自動化するマクロを導入したい!

このような問題を抱えながら日々のエクセル業務をこなしている方がおおくいらっしゃるのではないでしょうか。

 

こんな問題を解決する方法がこちら

  • マクロの開発を外注に依頼する
  • マクロが設定されたエクセルファイルをダウンロードする
  • 参考書やネットでVBAスキルを身に付ける

 

VBAの勉強を始める前は上記の方法で効率化マクロを導入していました。

 

 

 

完成されたマクロを使ってエクセル業務を処理する

作業効率が2倍以上アップ!!

便利すぎて自分でもマクロを設定したいと考え始める

参考書やネットの情報でVBAスキルを身に付ける

マクロ開発を代行できる程のスキルを習得

 

 

 

VBAは

他のプログラミングに比べて参考書やネットで紹介されている情報量が多いので初心者でも導入しやすい

という特徴があります。

 

毎日のルーティーン作業にうんざりしている、だれでもできる単純作業に時間を費やしている、という方はあなたに合った方法でVBAを導入しちゃいましょう。

 

マクロの開発を外注に依頼する

マクロの開発を外注に依頼する導入方法は

VBAを全く扱えない方でもエクセル作業を自動化できる最も簡単な方法

です。

 

「こんなエクセル作業を自動化したい」「作った資料を自動的にPDFで保存したい」「決まった様式に写真を自動で貼り付けたい」

こんな感じで実現したい内容を依頼するだけで業務内容に合ったマクロを開発してくれます。

 

Left Caption

ガッツポーズの人

完成まで本業に集中できるので効率的

 

 

デメリットは、費用がかかることだけ。

開発内容、依頼先によってかかる費用は大きく異なります。

私が会社員の頃利用していた業者さんは1マクロあたり2万円~3万円の費用がかかりました。

 

Left Caption

疑問がある人

ちょっと高くない。。。

 

ちなみに、マメBlogでもエクセルマクロ開発代行サービスを承っています。

開発内容の確認、VBAコードの設定、動作確認後の調整、など全ての工程を私(マメ父ちゃん)が行っているので、

費用が安い!スピード納期!!

でやらせてもらっています。

 

ほとんど独学で身に付けたVBAスキルなので、内容によっては開発できないこともあるのでご了承ください。

 

ご相談、見積もり依頼は完全無料ですので気になる方は下記のリンクよりお問合せ下さい。

 

 

マクロが設定されたエクセルファイルをダウンロードする

VBA初心者でも『マクロが設定されたエクセルファイルをダウンロード』ですぐにエクセル作業を自動化することができます。

 

たとえば、

A4用紙に写真を貼り付けてコメントを入力する作業を自動化したい!という場合、

『写真を貼り付けるマクロ』が設定されたエクセルファイルをダウンロードすれば問題解決です。

 

実際に、『写真を貼り付けるマクロ』をダウンロードして使っている様子がこちら

写真貼付けマクロの使い方を示したイラスト

 

 

Left Caption

ガッツポーズの人

写真貼付け作業の効率がめちゃくちゃアップ

 

 

『マクロが設定されたエクセルファイルをダウンロード』する導入方法は、

VBA初心者でもマクロを導入できる、費用が安い、

というメリットがあります。

 

しかし

VBAに関する情報が多く公開されているとはいえ、ネット上で想定するマクロは見つけることが難しい

というデメリットもあります。

 

Left Caption

ガッツポーズの人

お目当てのマクロが見つかればラッキー

 

個人ブログやファイルを販売できるサイト「note」や「Tips」ではいろんなマクロの情報が掲載されているので是非参考にしてみてください。

 

今までマメBlogで受注した効率化マクロを下記のnoteで掲載していますので併せてチェックしてみてください。

 

 

 

参考書やネットでVBAスキルを身に付ける

先程も紹介しましたが、

VBAは他のプログラミングに比べて参考書やネットで紹介されている情報量が多いので初心者でも導入しやすい

プログラミングです。

 

言い換えると、

情報量が豊富なので自分で勉強できちゃう

ということです。

 

私のVBAスキルはほとんど独学で身に付けたもので、

考えた処理のほとんどをVBAで表現できるレベルにまで到達した!

と思っています。

 

私の作ったマクロをプロのプログラマーが見れば、

お前の書くコードはインチキだ!「変数の宣言」とか「引数」を正しく使えよ!!

と感じるはずです。

 

でも、

私からすればどうでもいい!!!想定した内容を正しく処理できればよくないですか!?

 

独学であっても『写真を貼り付けるマクロ』『全てのシートをPDF出力するマクロ』『連番を振るマクロ』など、

業務内容に合ったマクロを開発できるようになれます。

 

独学でVBAスキルを身に付けるコツは、

エラーが発生してもいいからひたすらコードを書く、なんでもいいからエクセル作業をマクロ化してみる

です。

 

とは言っても、全くの知識0の方は何をすればいいかわからないですよね。

 

VBA知識0の初心者の方は、参考書『たった1秒で仕事が片づくExcel自動化の教科書【増強完全版】』を読んでみてください。

 

VBAの知識0の方でもすいすい読み進められる内容になっています。

やさしい内容にも関わらず「え!!VBAを使えばこんなことできるの!?」と感動すると思います。

 

実際に私はこの参考書を読んでからVBAの勉強を始めました。

 

Left Caption

ひらめく人

VBA学習スタートのきっかけをくれた参考書


 

 

VBAの魅力を発見した後は、

ひたすら自動化したい処理を実現するコードを書くだけ

です。

 

【VBA 写真を貼る】、【VBA PDF出力】、のようにネット検索すれば知りたいコードをすぐにゲットできます。

 

実現したい処理に向かって、「調べる→書いてみる→エラーを改善する→調べる」を繰り返していると

自然といろんなマクロが作れるようになっているはずです。

 

VBAに興味が湧いてきたという方は今からVBA学習をスタートさせちゃいましょう。