豆父ちゃん
こんな方のために、簡単にバックアップ保存できるVBAを紹介します。
目次
バックアップ保存VBAとは
エクセルファイルを保存するときは名前をつけて保存、もしくは上書き保存をしている方がほとんどだと思います。
バックアップ保存VBAは1クリックで上書き保存+バックアップフォルダに保存できるシステムです。
このシステムを使って保存をすれば、日頃使っているエクセルファイルが壊れたり消されたりしてもバックアップがあるので安心です。
下記で紹介するサンプルVBAの使い方はバックアップ用フォルダを作成し、そのフォルダの場所を登録するだけ。この設定を1度行うだけで毎回バックアップをとりながらデータ保存が可能になります。
バックアップ保存VBAの設定方法
バックアップ保存用のフォルダを作成
適当な場所にフォルダを作成。この作成したフォルダにバックアップ用のデータがどんどん保存されていきます。
設定sheetを作成
設定sheetに先程作成したフォルダの場所を指定します。既にあるフォルダに保存したい場合はそのフォルダの場所を指定してください。
バックアップ保存ボタンを作成
ユーザーフォームでボタンを作成し、VBAを登録。実行すると指定したフォルダにエクセルファイルが保存されます。
エクセルファイルがどのように使われているかでVBAの実行方法が異なります。サンプルではユーザーフォームでVBAを実行させていますが、他にも任意のセルをクリックして実行、ボタンを作成して実行などいろんな方法があります。
下記の記事ではVBAの実行について詳しく紹介しています。
VBAで設定したコードの「実行ボタン」を作成したい!どうやればいいの? こんな疑問にお答えします。 コマンドボタンの作成にはいろんな方法があるのですが、この記事では以下の3つの方法をご紹介します。 【超簡単】ツールバーからボタンを作成 ユーザーフォームでボタンを作成 セルに実行ボタンの機能を設定 おすすめは1つの目の「クイックアクセスツールバーからボタンを作成」する方法です。VBA初心者の方でも30分もあれば作成可能という超簡単な方法なので是非チェックしてみてください。 コマンド... 【VBA】コマンドボタン(マクロ実行ボタン)を作成する方法をご紹介 - mamemametochan.com |
バックアップ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で保存したい」「決まった様式に写真を自動で貼り付けたい」
こんな感じで実現したい内容を依頼するだけで業務内容に合ったマクロを開発してくれます。
ガッツポーズの人
デメリットは、費用がかかることだけ。
開発内容、依頼先によってかかる費用は大きく異なります。
私が会社員の頃利用していた業者さんは1マクロあたり2万円~3万円の費用がかかりました。
疑問がある人
ちなみに、マメBlogでもエクセルマクロ開発代行サービスを承っています。
開発内容の確認、VBAコードの設定、動作確認後の調整、など全ての工程を私(マメ父ちゃん)が行っているので、
費用が安い!スピード納期!!
でやらせてもらっています。
ほとんど独学で身に付けたVBAスキルなので、内容によっては開発できないこともあるのでご了承ください。
ご相談、見積もり依頼は完全無料ですので気になる方は下記のリンクよりお問合せ下さい。
マクロが設定されたエクセルファイルをダウンロードする
VBA初心者でも『マクロが設定されたエクセルファイルをダウンロード』ですぐにエクセル作業を自動化することができます。
たとえば、
A4用紙に写真を貼り付けてコメントを入力する作業を自動化したい!という場合、
『写真を貼り付けるマクロ』が設定されたエクセルファイルをダウンロードすれば問題解決です。
実際に、『写真を貼り付けるマクロ』をダウンロードして使っている様子がこちら
ガッツポーズの人
『マクロが設定されたエクセルファイルをダウンロード』する導入方法は、
VBA初心者でもマクロを導入できる、費用が安い、
というメリットがあります。
しかし
VBAに関する情報が多く公開されているとはいえ、ネット上で想定するマクロは見つけることが難しい
というデメリットもあります。
ガッツポーズの人
個人ブログやファイルを販売できるサイト「note」や「Tips」ではいろんなマクロの情報が掲載されているので是非参考にしてみてください。
今までマメBlogで受注した効率化マクロを下記のnoteで掲載していますので併せてチェックしてみてください。
参考書やネットでVBAスキルを身に付ける
先程も紹介しましたが、
VBAは他のプログラミングに比べて参考書やネットで紹介されている情報量が多いので初心者でも導入しやすい
プログラミングです。
言い換えると、
情報量が豊富なので自分で勉強できちゃう
ということです。
私のVBAスキルはほとんど独学で身に付けたもので、
考えた処理のほとんどをVBAで表現できるレベルにまで到達した!
と思っています。
私の作ったマクロをプロのプログラマーが見れば、
お前の書くコードはインチキだ!「変数の宣言」とか「引数」を正しく使えよ!!
と感じるはずです。
でも、
私からすればどうでもいい!!!想定した内容を正しく処理できればよくないですか!?
独学であっても『写真を貼り付けるマクロ』『全てのシートをPDF出力するマクロ』『連番を振るマクロ』など、
業務内容に合ったマクロを開発できるようになれます。
独学でVBAスキルを身に付けるコツは、
エラーが発生してもいいからひたすらコードを書く、なんでもいいからエクセル作業をマクロ化してみる
です。
とは言っても、全くの知識0の方は何をすればいいかわからないですよね。
VBA知識0の初心者の方は、参考書『たった1秒で仕事が片づくExcel自動化の教科書【増強完全版】
VBAの知識0の方でもすいすい読み進められる内容になっています。
やさしい内容にも関わらず「え!!VBAを使えばこんなことできるの!?」と感動すると思います。
実際に私はこの参考書を読んでからVBAの勉強を始めました。
ひらめく人
VBAの魅力を発見した後は、
ひたすら自動化したい処理を実現するコードを書くだけ
です。
【VBA 写真を貼る】、【VBA PDF出力】、のようにネット検索すれば知りたいコードをすぐにゲットできます。
実現したい処理に向かって、「調べる→書いてみる→エラーを改善する→調べる」を繰り返していると
自然といろんなマクロが作れるようになっているはずです。
VBAに興味が湧いてきたという方は今からVBA学習をスタートさせちゃいましょう。