「VBAによる業務改善(サービス状況報告書)とその運用管理」では、訪問介護のモニタリング結果の報告書として「サービス状況報告書」のフォームと、そのシートの追加及び印刷等をVBAマクロを作成することで、業務改善を図りました。すでに運用を開始しておりますが、その中で、バックアップについての課題が発生しましたので、今回はフォルダのバックアップについてVBAを活用した改善を試みましたので、公開します。
課題点
社内では、ファイル共有としてDropboxを使っています。その使い勝手の良さは抜群です。ファイルやフォルダ単位での共有も可能で、社内のファイル共有には頻繁に使われています。直接excelやWordで変更ができる為、意識なく自分のデスクトップの如き使い方をされる為、以下のような問題が発生することがあります。
- 必要なファイルが知らない間に削除されている。(間違ったファイルを削除)
- 必要なファイルが知らない間に別フォルダに移動されている。(間違ったファイルを移動)
- 競合コピーがたくさんできていて、どれが最新かわからない
- いつのまにかファイルの内容が書き変えられている。
<改善前のバックアップ方法>
バックアップはしていないか?又は、DropBox内にコピーを置いていた。
今回、「状況報告書」フォルダの中の2つのサブフォルダを、フォルダまるごとデスクトップのフォルダにバックアップしてみます。

改善策
無償のDropBoxを使う以上(2GBまで)、セキュリテイ面では運用で対応する他はない為、標記の課題点は、常に発生するものとして、バックアップを取ることとしました。
フォルダ毎のバックアップ
フォルダは以下のような構成となっている為、フォルダ丸ごとバックアップします。

バックアップは、デスクトップへ
DropBoxの中にバックアップフォルダを設けても、同様の課題点が発生しますので、デスクトップにバックアップします。
<改善後のバックアップ方法>

バッックアップ実行マクロの作成
DropBox内の「状況報告書」フォルダの中にある「バックアップ実行マクロ.xlsm」を開き、「バックアップ実行」ボタンをクリックすることで、自動的にバックアップを実行します。

<機能>
「状況報告書」フォルダの中のフォルダを読み込み、フォルダのみをデスクトップのバックアップフォルダにコピーします。
「状況報告書」フォルダには、この「バックアップ実行マクロ.xlsm」も存在する為、これを除いたフォルダのみをコピーします。
また、バックアップフォルダ名は固定とせず、フォルダ選択画面を表示してバックアップフォルダを選らばせる様にします。
VBAで自動化
フォルダバックアップ
目的
これまで、DropBox内で運用しているにもかかわらず、バックアップは殆どされていなかった為、ファイルが消えた等の場合は、都度復元する方法で対処してきたが、管理すべき情報も増えたため、定期的なバックアップを行なうこととした。
方法
フォルダバックアップマクロを作成して、「実行」をクリックすることで自動でデスクトップのフォルダにバックアップできるようにした。
①「バックアッップ実行」ボタンをクリック
「状況報告書」フォルダにある「バックアップ実行マクロ.xlsm」を開き、「バックアップ実行」をクリックします。

②バックアップ先フォルダの選択
「バックアッップ実行」をクリックすると、フォルダ選択の画面が表示されますのでバックアップ先フォルダを選択します。

③結果
「状況報告書」フォルダの中のフォルダを読み込み、フォルダのみをデスクトップのバックアップフォルダにコピー(上書き保存)します。「状況報告書」フォルダには、この「バックアップ実行マクロ.xlsm」も存在する為、これを除いたフォルダのみがコピーされます。

VBAマクロの作成
フォルダバックアップマクロの作成
マクロの作成
内のフォルダ(「状況報告書」)の中のサブフォルダ(例:「サービス状況報告書_HAPPY1号館」)をコピーします。但し、「バックアップ実行マクロ.xlsm」は除きます。又、コピー先フォルダは、フォルダ選択画面を表示して選択できるようにします。

マクロの説明
①フォルダ選択画面の表示
フォルダ選択画面を表示します。

※ファイル選択画面の時は、msoFileDialogFilePiherとなります。
②選択されたか?キャンセル?かの判断

フォルダ選択画面が表示されているところで、「キャンセル」すると何もせず終了します。
③フォルダの選択と決定
フォルダ選択画面で選択されたバックアップ先フォルダをコピー先(destfolder)に格納します。

④サブフォルダの取得
、つまりこのマクロの記述された「バックアップ実行マクロ.xlsm」のある「状況報告書」フォルダのサブフォルダを読み込みます。

⑤サブフォルダのコピー

サブフォルダの名前が、「サービス状況報告書_*」であれば、バックアッブ先であるあるdestfolder(選択されたフォルダ)にコピーします。
※destfolder & “\”は、”\”が付いている為、destfolderの中にフォルダとしてコピーされます。
コメント