
Excelファイルを開くときに、読み取り専用で開きたいなーと思うこと、ありませんか?
Excelファイルを右クリック→プロパティ→読み取り専用にチェックを入れれば読み取り専用になります。
でも普段は読み取り専用にしたくない。参照するためだけに一時的に読み取り専用で開きたい。
そういった要望を満たす方法、ありますよ。
今回はExcelファイルを読み取り専用で開く方法をご紹介します。
Excelファイルを読み取り専用で開くメリット
そもそもExcelファイルを読み取り専用で開くと何が嬉しいのかについて説明します。
誤って上書き保存してしまうリスクがなくなる
更新するつもりはなく、参照するためだけにExcelを開いたけど、ついいつものくせでCtrl+Sで上書き保存してしまった。こんな経験ないでしょうか?
Excel操作に慣れている人ほど、ちょっとした操作をしただけでもこまめに保存するクセがついているので、こういったことが起きがちです。
内容が変わっていないのにファイル更新日時が変わっていたら混乱しちゃいますよね。あれ、このExcelファイル、誰が何を更新したんだ?ってなります。
参照するためだけなら読み取り専用で開くのが安全なのです。
他の人が更新できる状態で開くことができる
企業のファイルサーバーに置かれたあるExcelファイルを複数人で編集することは非常によくあります。
共有設定していないExcelファイルの場合、例えばAさんがあるファイルを普通に開くと、同じファイルをBさんが開こうとすると読み取り専用で開くことになります。
排他制御がかかっているからなのですが、Aさんはただ参照するためだけに開いているのに、Aさんがファイルを閉じないとBさんが更新できないというのは非常に効率が悪いです。
その点、Aさんが読み取り専用で開いていれば、Bさんは同じファイルを更新できる状態で開けます。
更新しないのであれば読み取り専用で開く方が作業効率の面でもメリットがあります。
Excelファイルを読み取り専用で開く方法
それではExcelファイルを読み取り専用で開く方法をご紹介します。
右クリックメニューの「送る」に読み取り専用で開くメニューを追加する
ファイルを右クリックすると「送る」メニューが表示されますよね。そこにExcelを読み取り専用で開くメニューを追加する方法です。
まず、下記コードをコピーします。ちなみにこのコードは「Excelを右クリックから読み取り専用で開きたい – 今日を乗り切るExcel研究所」から拝借しています。感謝!
@if(0)==(0) echo off
setlocal
for /f "tokens=2 delims==" %%a in ('assoc .xlsx') do set XLTYPE=%%a
for /f "tokens=2 delims==" %%a in ('ftype %XLTYPE%') do set XLEXE=%%a
cscript.exe //nologo //E:JScript "%~f0" %XLEXE%
exit /b
@end
with (WScript.CreateObject("WScript.Shell").CreateShortcut("Excel [読み取り専用].lnk")) {
TargetPath = WScript.Arguments(0);
Arguments = "/r";
Save();
}コピーした内容をメモ帳などに貼り付け、任意の場所に保存します。ファイル名は何でも良いですが、拡張子は「.txt」ではなく「.bat」にします。
これはバッチファイルと呼ばれるもので、Windows上でプログラムを実行できる形式になります。
▼私はこんな感じで作成しました。

保存できたらファイルをダブルクリックして実行します。
▼すると「Excel[読み取り専用]」というショートカットファイルが出来上がります。

▼次に、エクスプローラーを開き、ファイルパスの部分に「shell:sendto」とタイプし、エンターキーを押下します。

▼すると、右クリックメニューの「送る」の中身がフォルダとして開きます。

▼このフォルダに、先ほど作成した「Excel[読み取り専用]」ショートカットファイルをコピーします。

これで作業は完了です。動作確認しましょう。
▼Excelファイルを右クリック→「送る」→「Excel[読み取り専用]」をクリック。
![Excel[読み取り専用]](https://love-guava.com/wp-content/uploads/2018/09/201809_0056.png)
▼Excelが読み取り専用で開けていますね。

ここまで確認できたら、最初に作成したバッチファイルは削除してOKです。
RelaxToolsをインストールして読み取り専用で開く機能を使う
続いては、Excelに便利機能を追加してくれるアドオン「RelaxTools」をインストールする方法です。
RelaxToolsって何?って人は下記記事を参考にしてください。
Excelが超便利になる「RelaxTools Addin」で作業が捗り過ぎる!役立つ機能を紹介します
めちゃくちゃ便利ですよ。
で、これをインストールすれば、Excelファイルを右クリックしたときに「読み取り専用で開く」というメニューが表示されるようになります。
▼こんな感じ。

もし表示されていなければ、RelaxToolsをダウンロードして解凍したフォルダの中にある「ExcelReadOnly.vbs」を実行すれば表示されるはずです。
「読み取り専用で開く」をクリックすれば、Excelファイルを読み取り専用で開くことができます。
右クリックメニューの「新規作成」を使う
何も準備なしでてっとり早くやるならこれ。
▼Excelファイルを右クリック→「新規作成」をクリック。

▼「sample1.xlsx」を「新規作成」で開くと、「sample11」を開いた状態になりました。

「sample1.xlsx」の内容を別ファイル名(この例ではsample11)で開いている状態になっています。
このファイルを保存しようとすると「名前を付けて保存」ダイアログが起動します。
これ、厳密に言うと読み取り専用で開くことになっていないのですが、読み取り専用で開くのと同等のメリットは享受できます。
つまり、誤って更新するリスクはない(元のファイルを更新しないので)し、別ファイルを開いた状態なので他の人はsample1.xlsxを編集可能です。
さらに特別な事前準備が不要なので、一番手軽に実践できるのもメリットですね。
Shiftキー+右クリックで表示される「読み取り専用で開く」は読み取り専用にならないので注意
上記のようなことをしなくても、Excelファイルを選択し、Shiftキー+右クリックを押下すると「読み取り専用で開く」という項目が表示されます。
▼こんな感じ。(前述しているRelaxToolsのやつとは別です)

なんだ、別に特別なことしなくても普通にこれでいいじゃん……って思いますよね。
しかしこれ、罠です。
Excelファイルは開きますが、読み取り専用になっていません。上書き保存できてしまいます。
このやり方はやらないでおきましょう。
まとめ
というわけで、Excelファイルを読み取り専用で開く方法を3つご紹介しました。
仕事で扱う重要なファイルだと誤って更新してしまうリスクは無視できません。バックアップ取ってなかったらもう元には戻せません。
更新しないけど参照だけしたいExcelファイルを開くときは、今回ご紹介した方法を使って読み取り専用で開くクセをつけておきましょう。
<関連記事>



