どうも、くまおやぢです。
仕事の中盤、ふと共有フォルダを開いたら「売上管理表」がない。ゴミ箱を見ても空っぽ。
背筋が凍る、あの瞬間。経験ありませんか?
「誰だ!共有ファイルを消したやつは!」
……という怒号を飛ばす前に、まず確認してほしいことがあります。
- 急いでいる人へ|復元の初動3ステップ
- この記事でできること
- この記事が向いている人
- 01. まず落ち着く|本当に削除されたのかを切り分ける
- 02. 復元手順1|ゴミ箱とOneDriveのゴミ箱を最優先で確認する
- 03. 復元手順2|以前のバージョンで過去のフォルダからExcelを救出する【共有サーバー最強機能】
- 04. 復元手順3|Excelのバージョン履歴と自動回復ファイルを使う
- 05. ここまでで戻らないとき|管理者に依頼するときのポイント
- 06. 再発防止の考え方|人はミスをする前提で仕組みを作る
- 07. VBA防衛術|閉じるたびに勝手にバックアップを取る仕組み
- 08. 実装|Workbook_BeforeCloseで自動バックアップマクロを作る
- 09. 実運用レベルに仕上げる改良版
- 10. よくある質問|復元とVBAバックアップのつまずき解消
- 11. すぐ使えるチェックリスト
- 12. まとめ|技術でミスをカバーするのがプロの仕事
急いでいる人へ|復元の初動3ステップ
いきなり結論から。消えた直後にやることは、この順番です。
- エクスプローラーで検索する(移動している可能性が高い)
- ゴミ箱を確認する(ローカル→OneDrive/SharePointの順)
- **フォルダのプロパティ→「以前のバージョン」**を開く(共有サーバーなら最強)
この3つで戻るケースが、現場では9割以上です。「復旧ソフト」「ITに連絡」はその後でOKです。
この記事でできること
この記事は、2部構成になっています。
前半:復元編
WindowsとクラウドのExcelを、標準機能で復元する手順を順番に解説します。ゴミ箱・以前のバージョン・OneDriveのバージョン履歴・自動回復まで、使える手段を全部カバーします。
後半:予防編(VBA防衛術)
「閉じるたびに自動でバックアップを作る」VBAマクロを実装します。仕込んでおけば、次の事故はもう怖くない。コードはそのままコピペして使えます。
この記事が向いている人
- 共有サーバーのExcelを複数人で運用している
- OneDrive/SharePoint/Teamsでファイル共有している
- 「消えた」「上書きした」「戻せない」で月末に胃が痛くなる
- 再発防止のために、VBAでバックアップを自動化したい
「うちの現場だ…」と思ったなら、今日この手順を入れるだけで、次の事故対応が一気にラクになります。
では、犯人探しの前にやるべき「切り分け」から始めましょう。
01. まず落ち着く|本当に削除されたのかを切り分ける
ファイルが見当たらないとき、いきなり「削除だ!」と決めつけるのは危険です。
現場で多いのは、削除ではなく移動、もしくは見えなくなっているだけのパターン。
実際、ドラッグ&ドロップの手元が狂って隣フォルダに移動してしまい「消えた!」と騒ぐ事故は、本当によく見ます。月末・締め処理・上司から急かされているとき、注意力は落ちます。これは個人の性格ではなく、構造的に起きる問題です。
消えたのではなく移動されているケース
最近使ったファイルから場所を特定する
まずはExcelの「最近使った項目」を確認します。ファイルを開いたことがあれば、保存場所(パス)が見えます。「別フォルダに移動していた」が一発で分かります。
次に、エクスプローラーの検索です。
- 共有フォルダの上位フォルダを開く
- 右上の検索ボックスにファイル名の一部(例:「売上」「管理表」)を入力
移動しているなら、ここで高確率で見つかります。
同名ファイルの上書きと拡張子の取り違え
「ファイルはあるのに中身が違う」場合は、別ファイルで上書きした可能性があります。
また、拡張子の違いにも注意です。
.xlsx:通常のExcelファイル.xlsm:マクロ有効ブック.xls:古い形式
「拡張子が表示されていない」設定だと、見た目が同じに見えて事故ります。エクスプローラーの「表示」→「ファイル名拡張子」を有効にしておくと安心です。
共有フォルダ特有の落とし穴
ショートカットだけ消えている
デスクトップや「よく使う場所」に置いたショートカットだけが消えて、「ファイルが消えた!」と勘違いするケースがあります。共有フォルダ本体を直接開いて検索すると、ファイル自体は生きていることが多いです。
表示設定で見えなくなっている
エクスプローラーの表示設定が変わると、ファイルが「見えていないだけ」になることがあります。並び替えが「更新日時」になっていて奥に埋もれている、フィルターで絞られている、隠しファイル扱いになっている、などが典型です。
ここまでで見つかれば、それは「削除」ではなく「行方不明」だっただけです。
見つからない場合は、いよいよ復元フェーズへ進みます。
02. 復元手順1|ゴミ箱とOneDriveのゴミ箱を最優先で確認する
復元作業は「戻る可能性が高くて、操作が安全な場所」から当たるのが鉄則です。
その筆頭が、ゴミ箱。ただし、共有フォルダは少しクセがあります。
Windowsのゴミ箱で復元できる条件
Windowsのゴミ箱に入るのは、主に「ローカルPC上で削除されたもの」です。
- ローカル(自分のPC):削除するとゴミ箱に入ることが多い
- 共有サーバー(ネットワーク):削除するとゴミ箱を経由せず、いきなり消えることがある
なので、共有フォルダのファイルが消えた場合でも、まず確認して「なければ次へ」が正解です。
復元手順
- デスクトップの「ゴミ箱」を開く
- ファイル名で並び替えるか、検索ボックスで探す
- 見つけたら右クリック→「元に戻す」
これで戻ったら一件落着です。
OneDrive・SharePoint・Teamsならクラウドのゴミ箱が本命
最近は、TeamsのファイルはSharePoint上にあり、個人ファイルはOneDriveにある構成が一般的です。
この場合、PCのゴミ箱ではなくWeb版のゴミ箱に残っている可能性が高いです。
Web版での操作手順
- ブラウザでOneDriveまたはSharePointの該当場所を開く
- 左メニューの「ゴミ箱」をクリック
- 消えたファイルを選択し「復元」を押す
Teamsの場合は、該当チームの「ファイル」タブからSharePointを開けることが多いです。
🕐 急ぐべき理由
クラウドのゴミ箱には保持期間があります。運用設定によりますが、一定期間を過ぎると自動で消えます。気づいたら即実行が正解です。
復元できないときのチェックポイント
すでに完全削除されている
誰かがゴミ箱からさらに削除すると、通常の操作では戻せなくなります。クラウドの場合は、管理者側の復元機能が必要になるケースがあります。
権限が足りずゴミ箱が見えない
「ゴミ箱メニューが表示されない」「復元が押せない」場合、権限不足の可能性があります。このときは無理に触らず、管理者や情シスに相談してください。触れば触るほど状況が悪化することがあります。
ここまでで戻らない場合、次に当たるのが共有サーバー運用の最強機能「以前のバージョン」です。
03. 復元手順2|以前のバージョンで過去のフォルダからExcelを救出する【共有サーバー最強機能】
共有サーバー運用でファイルが消えたとき、個人的に「最強の救世主」だと思っているのが以前のバージョンです。
これが有効な環境なら、犯人探しをする前にほぼ勝てます。
「以前のバージョン」が効く仕組みをざっくり理解する
以前のバージョンは、サーバー側でシャドウコピーなどの履歴が保存されている場合に使える機能です。
重要なのはここです。
- 戻す対象は「ファイル」ではなく、ファイルが入っていたフォルダ
- 過去時点のフォルダを開いて、中身をコピーして取り出すのが正攻法
復元というより「タイムマシンで覗いてコピー」というイメージです。
実践|フォルダの以前のバージョンからExcelを救出する手順
- ファイルが入っていたフォルダを右クリック
- 「プロパティ」を選択
- 「以前のバージョン」タブを開く
- 日時の一覧から、ファイルが存在していた頃を選ぶ
- 「開く」をクリックして、過去のフォルダを表示
- 消えたファイルを見つけたら、別の場所にコピーする
なぜ「コピー」で取り出すのが安全なのか
「復元」ボタンを押すと、フォルダ全体を過去の状態に戻してしまうリスクがあります。慣れるまでは「開く→コピー」で救出するのが断然安全です。現行フォルダを壊さずに済みます。
うまく出てこない場合の原因
サーバー側設定で履歴がない
一覧が空っぽなら、そもそもシャドウコピーなどの履歴が取られていない可能性があります。管理者に「以前のバージョンが出ない。履歴保存設定が有効か確認してほしい」と依頼するのが最短です。
対象が別の共有方式になっている
共有の実体がSharePointなどクラウドだった場合、この機能は使えません。前章のクラウドゴミ箱か、次章のExcelのバージョン履歴が本命になります。
04. 復元手順3|Excelのバージョン履歴と自動回復ファイルを使う
ゴミ箱にもない。以前のバージョンも出てこない。
それでも、Excelファイルならまだ勝負できます。
Excelのバージョン履歴で上書き事故から復元する
OneDrive/SharePoint上のExcelなら、ファイル自体に版の履歴が残っていることがあります。
「ファイルが消えた」ではなく「上書きして壊した」場合に特に強い機能です。
OneDrive保存時の強み
- 自動保存が効いていると、編集の途中経過が版として残る
- 誰がいつ触ったかが、履歴として見えることがある
- 「元に戻す」の粒度がサーバーより細かいこともある
どの版に戻すべきかの判断
版がたくさんある場合は「壊れる前を思い出せるなら、その直前の版を選ぶ」「分からないなら日時が近い版をいくつか開いて中身確認」が実用的です。戻す前に今のファイルも別名でコピーしておくと安心です。
自動回復ファイルから救う|保存せずに閉じた事故に強い
「保存せずに閉じた」「Excelが固まって落ちた」「ネットワークが切れた」——こういう事故で強いのが自動回復です。
自動回復の保存場所の探し方
- Excelを開く
- 「ファイル」をクリック
- 「情報」を開く
- 「ブックの管理」または「管理」を探す
- 「保存されていないブックの回復」が出ていればクリック
ここに残っているファイルは、救える可能性があります。
復元作業でやってはいけないこと
同じ場所に上書き保存する
復元できたファイルを、焦って元の場所・元の名前で上書きすると、他の復旧手段が潰れることがあります。まずは別フォルダに救出し、中身確認してから戻してください。
復旧ソフトを焦って走らせる前に
復旧ソフトは最終手段です。その前に、①検索・移動の可能性 → ②ゴミ箱 → ③以前のバージョン → ④Excelのバージョン履歴・自動回復、の順番を必ず踏んでください。
05. ここまでで戻らないとき|管理者に依頼するときのポイント
ここまでの手順で戻らない場合、個人のPC操作で粘るフェーズは終わりです。情シスやサーバー管理者に依頼しましょう。
ただし、丸投げすると復旧が遅れます。管理者が動きやすい情報を渡せるかで、復旧スピードが変わります。
管理者に渡す情報セット
最低限、以下を揃えて伝えましょう。
- ファイル名(正式名。不明なら一部でもOK)
- 保存場所(共有フォルダのパス)
- 最後に存在を確認した日時
- 最後に編集した人(心当たりがあれば)
- 気づいた日時
- 自分が行った操作(検索、ゴミ箱確認など)
この情報があるだけで、管理者はログやバックアップを当てやすくなります。
再発防止の提案:削除権限と変更権限を分離する
共有フォルダのトラブルは、権限設計でかなり減ります。
よくある「全員フル権限」運用だと、誤削除も誤移動も起き放題です。現場で効く考え方は「変更(編集・追加)はOKで、削除は制限する」こと。重要ファイルの置き場だけでも、権限を固めるだけで事故は激減します。
06. 再発防止の考え方|人はミスをする前提で仕組みを作る
ファイル消失は、ほぼ100%がヒューマンエラーです。
そして残念ながら、ヒューマンエラーは「気をつけよう」では減りません。忙しいときほど注意力は落ちるから。月末・締め・電話・チャット・上司の催促。こういうタイミングで手元が狂うのは、個人の性格ではなく構造的な問題です。
だから、再発防止は「注意喚起」より仕組み化です。
予防の3層構造
現場で効く再発防止は、3つを重ねることです。
- 権限:そもそも壊せないようにする
- 履歴:壊れても過去に戻れるようにする
- バックアップ:最悪でもコピーから復旧できるようにする
このうち権限・履歴はサーバー管理者が絡みます。現場が今日から着手しやすいのが、3つ目のバックアップ。そしてバックアップは「手でやる」と続きません。だから、勝手に取られる仕組みが最強です。
運用だけで事故が減る小技
VBAに入る前に、すぐできる改善も置いておきます。
- 重要ファイルは「重要」などのフォルダに集約して、触る場所を限定する
- ファイル名の日付は
2026-02-16のように並びが崩れない形式にする - 「最終」「最新版」「確定」の乱立をやめる
- ショートカットを配るなら、ファイル直リンクよりフォルダリンクにする
07. VBA防衛術|閉じるたびに勝手にバックアップを取る仕組み
ここからが再発防止の本丸です。
人間はミスをします。なら、ミスをゼロにするのではなく、ミスしても復旧できる状態を作る。そのためにVBAで「勝手にバックアップ」を取らせます。
なぜVBAで効くのか
バックアップ運用が失敗する最大の理由は「手でやる」からです。忙しいと忘れる、忘れた日だけ事故が起きる、ルールが形骸化する。
VBAなら、Excelファイルに仕込むだけで、使う人が何も意識しなくてもバックアップが溜まっていきます。運用負荷がほぼゼロ。それがVBAの最大の強みです。
仕組みの全体像
今回作るのは「世代バックアップ」です。
- 作業者がいつも通り開いて保存して閉じる
- 裏で「日時付きコピー」が別フォルダに自動保存される
- 誰かが削除・上書きしても、バックアップから戻せる
SaveCopyAs を使う理由
VBAには保存系のメソッドがいくつかありますが、今回の仕組みの主役は SaveCopyAs です。
SaveAs(名前を付けて保存)だと、保存した瞬間に作業対象がバックアップ側に切り替わる事故が起きます。SaveCopyAs は今作業している原本はそのままに、コピーだけを指定場所に保存します。つまり、運用がブレません。
何世代残すか・どこに置くか
- まずは 30世代(約1か月分)から始める
- バックアップ先は共有サーバー上の専用フォルダがおすすめ
- 原本と同じ場所に置かず、別階層にするのがコツ
08. 実装|Workbook_BeforeCloseで自動バックアップマクロを作る
ここからは実装です。ゴールは「ブックを閉じる直前に、別フォルダへ日時付きコピーを自動保存」すること。
コード貼り付け場所:ThisWorkbookに入れる
今回使うのは、ブックが閉じられる直前に動く Workbook_BeforeClose イベントです。
貼り付け場所はここ一択です。
- VBE(Visual Basic Editor)を開く
- 対象ブックの
ThisWorkbookを開く - コードを貼り付ける
標準モジュールに貼ると動きません。必ず ThisWorkbook です。
サンプルコード:基本版
まず、シンプルに動く最小構成です。
' ブックを閉じるときに自動的にバックアップを作成する
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim BackupPath As String
Dim FName As String
' バックアップを保存するフォルダ(※事前に作っておくこと!)
BackupPath = "C:\Backup\"
' ファイル名に日時を付ける(yyyymmdd_hhmmss 形式)
FName = Replace(ThisWorkbook.Name, ".xlsm", "") & "_" & _
Format(Now, "yyyymmdd_hhmmss") & ".xlsm"
' バックアップ実行
On Error Resume Next
ThisWorkbook.SaveCopyAs Filename:=BackupPath & FName
On Error GoTo 0
End Sub
ポイント①:ファイル名に秒単位の日時を付ける
これで上書きされず、履歴が溜まります。
ポイント②:パスの末尾は \ で終わる
末尾がないと C:\Backup売上管理表… のように連結されて失敗します。必ず \ で終わらせてください。
ポイント③:On Error Resume Next の意味と注意点
バックアップ先がない・権限がないなどでエラーになっても、Excelが止まらないようにしています。ただし失敗しても気づけないので、実運用ではログ出力を追加しましょう(後述)。
09. 実運用レベルに仕上げる改良版
前章のコードは「まず動く」最小構成です。現場で使い続けるなら、次の3点を追加します。
改良1:フォルダが無ければ自動作成する
「フォルダ作っておいてね」が守られず保存失敗するパターンを潰します。
' ブックを閉じるときにバックアップ(フォルダ自動作成・拡張子自動対応)
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim BackupPath As String
Dim BaseName As String
Dim Ext As String
Dim FName As String
BackupPath = "C:\Backup\"
' フォルダが無ければ作成
On Error Resume Next
If Dir(BackupPath, vbDirectory) = "" Then
MkDir BackupPath
End If
On Error GoTo 0
' 元ファイル名と拡張子を分解(xlsx/xlsm どちらでも対応)
Ext = Mid(ThisWorkbook.Name, InStrRev(ThisWorkbook.Name, "."))
BaseName = Left(ThisWorkbook.Name, InStrRev(ThisWorkbook.Name, ".") - 1)
' 日時付きファイル名を生成
FName = BaseName & "_" & Format(Now, "yyyymmdd_hhmmss") & Ext
' コピー保存
On Error Resume Next
ThisWorkbook.SaveCopyAs Filename:=BackupPath & FName
On Error GoTo 0
End Sub
この形にすると .xlsx でも .xlsm でも拡張子を気にせず運用できます。
改良2:バックアップの世代管理で容量を守る
自動バックアップの欠点は「放っておくと増え続けること」です。
最新N個だけ残す方式が現場では扱いやすく、基準はこれが目安です。
- まずは 30世代から始める
- 締め処理など重要業務があるなら 90世代 も検討
- ファイルが重いなら 週次バックアップ も選択肢
削除を自動化する場合は誤削除のリスクもあるので、最初はバックアップフォルダを「削除不可」にするなど、運用とセットで考えましょう。
改良3:保存失敗を見逃さないログ出力
On Error Resume Next は現場を止めない代わりに「失敗に気づけない」欠点があります。実運用では「バックアップフォルダに BackupLog.txt を作り、日時とエラー内容を追記する」だけでも大きな安心になります。
通知メッセージは「失敗時だけ表示」が正解。毎回「バックアップしました」と出すと、作業者は必ず無視するようになります。
セキュリティ面の注意
バックアップは便利ですが、機密データの複製でもあります。
- バックアップ先は必要最小限の人だけが見られるようにする
- 原本と同じ権限で置かない
- 会社のルールがあれば、暗号化や保管期間に従って運用する
10. よくある質問|復元とVBAバックアップのつまずき解消
以前のバージョンが表示されない
主な原因は2つです。①サーバー側で履歴(シャドウコピー等)がそもそも有効になっていない、②見ている場所が、実はクラウド共有だった。管理者に「履歴保存設定が有効か確認してほしい」と依頼するのが最短です。
OneDriveやSharePointのゴミ箱に見当たらない
よくある原因は「TeamsのファイルはSharePoint上にある」ことを知らず、別の場所のゴミ箱を見ているケースです。それ以外には、フォルダごと削除されている、すでにゴミ箱から削除されている、権限不足でゴミ箱が見えていない、などが考えられます。
マクロが動かない
コードのミスより多いのがマクロのブロックです。ファイルがインターネット由来と判定されてブロックされている、会社のポリシーでマクロ実行が制限されている、保存形式が .xlsx でコードを入れても保存時に消えている——これらが典型です。マクロを仕込むファイルは必ず .xlsm で保存してください。
共有フォルダだとバックアップが保存できない
原因はだいたい「バックアップ先に書き込み権限がない」「パスが間違っている」「ネットワークが不安定で閉じる瞬間に失敗している」の3つです。まずバックアップ先を「自分のPC(Cドライブ)」にして動作確認し、動くことを確認してから共有サーバーに移すのが安全です。
バックアップが増えすぎる
最新N個だけ残す、古いものを日付基準で削除する、閉じるたびではなく1日1回だけ保存する——のどれかで対処します。現場で最も扱いやすいのは「最新30個だけ残す」方式です。
11. すぐ使えるチェックリスト
消失直後の対応順序
- 検索する:Excelの最近使ったファイルで確認。共有フォルダの上位をファイル名検索
- ゴミ箱を確認:Windowsのゴミ箱 → OneDrive/SharePoint のWebゴミ箱
- 以前のバージョンを確認:「ファイルが入っていたフォルダ」のプロパティから。見つけたら「開く→コピー」で救出
- Excel側の復旧を確認:バージョン履歴(OneDrive/SharePoint)・自動回復
- 管理者に依頼:ファイル名・場所・日時・自分がやったことをまとめて渡す
復元後の再発防止チェックリスト
- バックアップの置き場を決める(原本と別階層のフォルダ)
- ThisWorkbookに自動バックアップマクロを仕込む
- バックアップの世代数を決める(まずは30世代)
- 重要フォルダの削除権限の見直しを管理者に相談する
管理者への依頼テンプレート
【ファイル消失の復旧依頼】
・ファイル名
・保存場所(共有フォルダのパス)
・最後に存在を確認した日時
・消失に気づいた日時
・心当たりのある編集者
・自分が確認したこと
- 検索(実施/未実施)
- ゴミ箱(ローカル)(実施/未実施)
- ゴミ箱(OneDrive/SharePoint)(実施/未実施)
- 以前のバージョン(実施/未実施)
- Excelのバージョン履歴/自動回復(実施/未実施)
12. まとめ|技術でミスをカバーするのがプロの仕事
共有ファイルが消えた瞬間の、あの血の気が引く感覚。現場で働く人なら誰でも経験します。
でも、「誰だ!」と叫んでもデータは戻りません。
プロがやるべきは、犯人探しではなく復旧の初動と再発防止の仕組み化です。
復元は初動がすべて。検索→ゴミ箱→以前のバージョン→Excelの履歴、この順番を覚えておくだけで対応の成功率が変わります。
予防は仕組み化がすべて。VBAで「閉じるたびに自動バックアップ」が動いていれば、上書き事故も誤削除も、涼しい顔で対処できます。
今日やるべき最小アクション
- 復元手順の順番を、チームで共有する
- 重要なExcelには、ThisWorkbookに自動バックアップマクロを仕込む
- バックアップ先フォルダと世代数(例:30世代)を決める
人の注意力は、忙しさの前では無力です。だから、仕組みで守る。
技術でミスをカバーするのがプロの仕事。
「うちの環境だとバックアップ先のパスをどう設計すればいいか分からない」「共有サーバー運用でも安全に回したい」など、現場事情に合わせた最適化が必要なら、ブログのお問い合わせから気軽に相談してください。現場で本当に機能する”守り”の仕組み作り、一緒にやりましょう。


コメント