変更が自動で保存される


ブックに対して行った編集などが、勝手に、自動的に保存されるようになりました。もう、こまめにCtrl + Sで上書き保存しなくてもいいです。

この「オン」をクリックしてオフにすることもできます。タイトルバーをクリックすると[バージョン履歴]という項目があります。

実行すると、画面の右に履歴が表示されて、任意の履歴に戻ることができます。

この履歴、ちょっとよく見てください。今回この記事を書くにあたって、適当な「Book1.xlsx」という名前で保存しました。どうせ後で消すのですから、ファイル名なんて何でもいいと。まぁ、私のことですから、そんなことを以前も考えたんでしょうね。この保存場所には、すでに「Book1.xlsx」が存在していました。もちろん「上書きする?」と聞かれましたので「しろ」と指示したのですが、バージョン履歴を見ると、以前の状態も残っています。どうやら上書きする前に存在していた古い「Book1.xlsx」って、2016年に保存したらしいです。3年前です。今回、そのファイルを上書き保存したわけです。今まででしたら、うっかり上書き保存したファイルは、もう戻せませんでした。でも、戻せます。試しにクリックしてみると、

へぇ~こんな表なんだ。何の目的で作ったのか、まったく覚えていません。この開いた状態は、まだ"読み取り専用"です。ちなみにこの時点では、作業していた、新しく保存した「Book1.xlsx」とは別のブックとして開かれます。なので、確認して「やっぱ、いらねーや」と消すことも簡単です。数式バーの上に[復元]なんてボタンがありますので、試しにやってみましょう。

「新しいバージョンを入手できます もう一度開いて、最新バージョンを取得します。行ったすべての変更は失われません」だそうです。ちょっと何言ってんのか分かりません。とにかく、もう一度開き直せと。

普通に編集できるようになりました。これ、万が一のときに助かりそうですね。

「は?Excelって今までも勝手に自動保存ってしてなかったっけ?」と混同する方もいるでしょう。今までのは"自動保存"ではなく"自動回復"用データの保存です。

自動回復というのは、万が一Excelが強制終了したときなどに、それまで編集していたデータを何とか復活させようという機能です。今回の新しい自動保存とは目的が違います。この自動保存というのは、共同編集機能のために搭載されたと考えるのが普通でしょう。共同編集に関しては、下記ページをご覧ください。

「共同編集」機能

Google スプレッドシートと比べてみると分かります。

【Google スプレッドシートの場合】

Google スプレッドシートで複数のユーザーが同時にデータを編集するとき、データはサーバー上にあります。各ユーザーは、そのデータをブラウザで表示します。例えば、ChromeとかIEなどですね。ブラウザというのは、インターネットのサーバーとデータをやり取りするためのアプリケーションです。ですから、常にデータの送受信を行っています。もし、ユーザー1がデータを編集したら、その情報はただちにサーバーへ送られ、同時にユーザー2のブラウザ画面も更新されます。

【Excelの場合】

大きな違いは、データを開いているのがExcelだということです。Excelはブラウザではありません。インターネットのサーバーと常時データのやり取りをするものではありません。各ユーザーが画面に表示しているのは、サーバーから提供されたデータです。このとき、ユーザー1がブック内の編集を行っても、それだけではサーバーに変更は伝えられません。保存されていないからです。もちろん、ユーザー2の画面も変わりません。それでは、共同編集の意味がないです。そこでExcelに、変更があったら即座に保存して、サーバー上のデータを更新する機能として「自動保存」が組み込まれました。

したがって、当たり前ですけど、この自動保存が有効になるのは、OneDriveに保存したときだけです。自分のPCの、たとえばデスクトップなどに保存されているブックでは、自動保存をオンにすることができません。

ちょっと困った仕様

まぁ、便利な機能なんでありがたいんですけど。私の場合、ちょっと困ったことがあります。たとえばExcelでマクロが含まれていないブック(xlsx)を開いていたとします。もちろんOneDriveに保存して、自動保存はオンになっています。そのとき、一時的にマクロを使いたいことがあります。これから操作するにあたって、まずデータを整形しようとか、手動でやると面倒くさい操作をマクロでやっちゃえ、みたいな。VBEを開いて標準モジュールを挿入し、パパッと簡単なマクロを書いて動かします。すると、とたんに自動保存が無効になります。

「自動保存できません VBAプロジェクトはマクロが有効になっているブックに保存する必要があります。自動保存を再開するには、ファイルをマクロが有効のファイルの種類に保存してください」だとか。おっしゃるとおりです。そんなことくらい知ってます。いや、このマクロは一時的なものだから、すぐ消すんですよ。マクロ入りブック(xlsm)としては保存しませんから。と言っても"あとの祭り"です。たとえ、標準モジュールごと削除して、普通のブック(xlsx)で保存できる形式に戻しても、自動保存は戻りません。つーか、手動でオンにすることもできません。ったく、しょうがねーな、じゃCtrl + Sで上書き保存するかと。すると

はぁ、そうですか。分かりました。注意します。で、[OK]ボタンをクリックすると、

だから、もう標準モジュールはないんだって。削除したんだから。含まれている可能性はないでしょ。そこまで言うのなら検査してみようじゃねーかと。含まれてるんだったら見せてみろと。

これですよね。はい、[検査]ボタンをポチっとな。

ほら~ないじゃん。でも、一度でもこれやっちゃうと、もうダメ。これ以降、自動保存はオンに戻せません。それどころか、これ以降、保存するたびに毎回このメッセージが表示されます。「ご注意ください」「ご注意ください」「ご注意ください」…っせーよ!

まぁ、すべてのExcelユーザーが困るわけではないでしょうから、私が運用を気をつければいいだけで。でも、なんか納得できないっす。これ、Microsoft側の問題だと思います。xlsxにマクロを含めないのは分かります。だから、マクロを書いた時点で「この形式では保存できません」それは分かります。でも、保存できる状態に戻したのなら、もう自動保存できるじゃないですか。なんで、そのチェックはしないのかと。一度でも保存できない状況が発生したら、それ以降いっさい自動保存できませんってのは、ちょっと安易すぎませんかね。Microsoftの技術を持ってすれば、それくらいクリアできると思うんですけどね~。