こんにちは、マイクロソフトマンです。
サーバにあるエクセルファイルを開いた時に、「編集のためロックされています。使用者は〇〇です。」と表示されてエクセルを開けない時があります。
そこで、使用者に表示される人(仮にAさんとします)に、今エクセルファイル使っていますか?と確認しますよね。
もし、Aさんが使用中であれば閉じてもらうだけですが、困ったことにAさんがエクセルファイルを開いていないのに、Aさんが使用中と表示される場合があります。
Aさん本人がエクセルファイルを開こうとしても「使用者はAです」と表示されて開けません。エクセルを開いていないのに、自分が使用中になるという謎の現象です。
この問題が起きると、Aさんのパソコンを再起動しても直りません。
このように、エクセルを使用していないのに使用中になる問題の原因や解決方法を解説します。
エクセルで「編集のためロックされています」と表示される原因
サーバにあるエクセルファイルを開いた時に画像のようなメッセージが表示される場合があります。
「△△.xlsxは編集のためロックされています。使用者は ‘〇〇’ です。[読み取り専用]で開いてください。読み取り専用で開き、ほかの人がファイルの使用を終了したときに通知を受け取るには、[通知] をクリックします。」と表示されていますね。
エクセルファイルを開くと、ファイルと同じ場所に「~$」で始まるエクセルファイルと同名の隠しファイルが作成され、エクセルファイルを開いた人の名前が書き込まれます。
誰かがエクセルファイルを開いているときに、他の誰かが開こうとすると、隠しファイルの情報を見て、誰が開いているかを表示する仕組みになっています。
正常時であれば、エクセルファイルを閉じると、隠しファイルは削除されます。
しかし、エクセルファイルが応答なしになって強制終了となったときや、ファイルの編集中にネットワークの切断が起きると、隠しファイルが消えずに残ってしまいます。
隠しファイルが消えずに残ってしまうと、前にエクセルを開いていた人の情報がずっと残り続けることになり、本当に開いている人とは別の人(前に開いていた人)の名前が使用者に表示されます。
「編集のためロックされています」のメッセージの具体例
具体例で順を追って説明しますね。
例えば、Aさんがサーバにある「test.xlsx」というファイルを開くと、「~$test.xlsx」という隠しファイルができて、隠しファイルの中にエクセルを使用している人の名前「A」が書き込まれます。
Aさんがエクセルファイルを使用中に、エクセルファイルが応答なしになり強制終了してしまうと隠しファイルが消えずに残ります。
次にBさんが「test.xlsx」を開くと編集はできますが、隠しファイルの「~$test.xlsx」はすでにあるため新たに作成されません。
そのため、Bさんが開いていますが、隠しファイルの中身はAさんが使用していると書かれたままになっています。
この状態で、Bさん以外の人が「test.xlsx」を開こうとすると「編集のためロックされています。使用者は ‘A’です」と表示されます。
つまり、実際はAさんが使用していないだけで、他の誰かがエクセルファイルを使用しているときに、メッセージが表示されます。
エクセルで「編集のためロックされています」と表示されたときの解決方法
「編集のためロックされています」と表示されたときに、隠しファイルを手動で削除することで問題は直ります。
正常時であれば、エクセルを開いた時に作られた隠しファイルは、エクセルが閉じられるまで削除できないようにロックされています。(エクセルが閉じられたときに自動削除されます)
しかし、消えずに残ってしまった隠しファイルはロックされていませんので、いつでも削除することができます。
ただし、隠しファイルを削除しようにも、そもそも隠しファイルを表示する設定にしなければ削除できません。
初期状態では、「~$」で始まる隠しファイルは表示されない設定になっているため、以下の手順で隠しファイルを表示します。
~$で始まる隠しファイルを表示する
隠しファイルを表示するには、エクスプローラの表示タブを選択して「隠しファイル」にチェックを付けます。
隠しファイルにチェックを付けただけでは、「~$」で始まる隠しファイルは表示されませんので、さらに「オプション」をクリックして、下記のフォルダーオプションの設定画面を開きます。
フォルダオプションの設定画面で、表示タブの最下部にある「保護されたオペレーティングシステムファイルを表示しない(推奨)のチェックを外します。
これで「~$」で始まる隠しファイルが表示されるようになりますので、削除しましょう。
削除すると、現在誰が開いているかの情報がなくなるため、一時的に「使用者は ‘ほかのユーザー’ です」と表示されるようになります。
その時にエクセルファイルを開いていた人がファイルを閉じれば、次回から正しい使用者が表示されるようになります。
すぐにでもエクセルを編集したい場合は、エクセルファイルが保存されているサーバーの管理者に連絡して、現在誰が開いているかを教えてもらいましょう。
管理者側で対象のエクセルファイルを強制終了することもできます。方法については、以下の記事をご覧ください。
拡張子「.xls」のエクセルファイルは隠しファイルができない
隠しファイルができるのは拡張子が「.xlsx」のファイルであり、昔のエクセルの拡張子「.xls」では隠しファイルができません。
拡張子「.xls」のファイルは、エクセルファイルの中にバイナリデータで使用者が書き込まれます。
この場合は、新しくエクセルファイルを作り、元のエクセルのシートをコピーしてエクセルを作り直すことで、直ります。
エクセルの隠しファイルが消えない問題の原因と対策
正常時であれば、隠しファイルはExcelファイルを閉じると自動で削除されます。
しかし、開いているエクセルファイルをネットワークの切断時に閉じたり、強制終了などで正常にExcelが終了されなかった場合、隠しファイルが自動削除されず残ってしまいます。
よくある原因は以下2つです。
場所移動の際のネットワーク切断
例えば、自席にて有線LANの接続で、ノートPCからサーバー上のエクセルファイルを開いているとします。
この状態で、打ち合わせの時間がきて会議室にノートPCを持っていく場合、エクセルが開いている状態で有線LANを抜くと、ネットワークが切断されます。
ネットワーク切断状態で、エクセルファイルを閉じると、サーバ上の隠しファイルが消えずに残ってしまいます。
VPN切断によるネットワーク切断
社外から社内にVPN接続して、社内サーバのExcelファイルを開いたとします。
この場合も、Excelファイルを閉じる前にVPN切断してしまうと、サーバ上の隠しファイルが消えずに残ってしまします。
ノートPCを使う人は、ノートPCをもって移動したり、VPNの切断をする前に、必ずエクセルファイルを終了しましょう。
まとめ
エクセルを使用していない人が、使用者に表示される問題を徹底解説しました。
「ファイルがロックされています。使用者は〇〇です。」と表示されて、かつエクセルを使用していない人が使用者に表示される場合、「~$」で始まるエクセルファイルと同名の隠しファイルを削除することで直ります。
マイクロソフトのエクセルを開発している天才集団が直さないのですから、簡単に治せない理由があるのかもしれません。
エクセルを開いた時に、ロックされていない同名の隠しファイルがあったときは、隠しファイルを削除して、作り直すだけで解決する問題に思えるんですけどね・・。
Excelファイルには同時編集できる設定もありますので、たくさんの人が編集するファイルについては同時編集する設定を有効にしたほうがいいです。
また、Microsoft Teamsでエクセルファイルを共有すれば、特に設定せずとも、同時編集ができるようになっています。
リアルタイムで、相手の選択しているセルが色で表示され、編集内容も見えるという優れた機能ですので、ぜひ活用してみてください。