読み取り専用で開く

エクスプローラでファイルを指定し、右クリックから「読み取り専用で開く」を使う話です。
実はこれがうまく動作しません。   昔からExcelを使っていた方は「確か右クリックメニューに[読み取り専用で開く]があったはずなのに見当たらない」とか思っていませんか? 実はMicrosoft365を利用していても、右クリックメニューに「読み取り専用で開く」は存在しています。
但し、問題が2つあって、
  ①右クリックしても「読み取り専用で開く」が見つからない
  ②「読み取り専用で開く」を選択しても「読み取り専用」にならない
このような状態なのです。



20244月時点ですが、②の不具合はそのままです。





右クリックしても「読み取り専用で開く」が見つからない
これは、単に近年のWindowsの「メニュー整理」の問題なのかも知れません。 「よく使うメニュー」を優先しており、それ以外は標準的な操作では隠れているようです。 「読み取り専用で開く」はShiftキーを押しながら右クリックさせると表示されます。

読み取り専用で開く

但し、単なる右クリックから「その他のオプションを確認」を選択した場合は「読み取り専用で開く」は表示されません。
この状況はExcelだけのことではなく、WordPowerPointでも同じです。

「読み取り専用で開く」を選択しても「読み取り専用」にならない
根本的な問題はこちらです。 「読み取り専用で開く」はExcelのかなり以前のバージョンから正しく働きません。



「読み取り専用」で開かれた場合は、

読み取り専用で開く

リボンの「ファイル」タブから「その他」「情報」を見ると、このような表示があるはずです。
Excelを最大化させているなど、ウィンドウサイズに余裕がある場合はタイトルバーのファイル名が表示される部分に「 - 読み取り専用」が付いて表示されます。



これらが無いということは、上書き保存もできてしまう状態です。
この状況もExcelだけのことではなく、WordPowerPointでも同じです。
また、「読み取り専用で開く」という要求は、単に「上書き保存の抑止」ということではなく、「他者の編集作業への影響防止」という用途もあります。



以下の対策を検討してみて下さい。

[対策①]右クリックメニューを正しく機能させる
右クリックメニューの「読み取り専用で開く」はExcel(Office)のインストール時に作成されますが、 そもそもはWindowsのレジストリ設定です。
つまり、Excel(Office)のインストール時のレジストリ設定が正しくないのですが、マイクロソフトに「放置」されている事案のようです。
「レジストリエディタ」を使って修正できるのですが、インストール時の設定自体の不具合なので、再インストールやExcel(Office)のアップデートでも元に戻ってしまうことがあるようです。 「レジストリエディタ」の操作が初めての方や、アップデートで元に戻ってしまうのを問題視する方は、次項「対策②」をご覧下さい。 (「勝手に戻ってしまう」のでは利用中に誤解する可能性もありますから)



レジストリにはWindows自身や他のアプリの設定も含まれており、これを操作することは危険を伴うことであり、もし行なうのであれば経験者に依頼することをお勧めします。 レジストリを壊してしまうと最悪はWindowsも起動できなくなる場合があるということです。
操作方法については、ここから説明しますが、処置の結果について当方では責任を負うことはできません。
また、ここでの説明も「レジストリエディタ」の操作について経験がある方向けの説明になります。



まず、拡張子の設定格納場所を確認します。

レジストリエディタ

Excelドキュメントの拡張子は主に「.xlsx」「.xlsm」などですが、他も必要であればその拡張子も確認します。



まず、「コンピューター\HKEY_CLASSES_ROOT」の配下に「.」で始まる各拡張子があるので、これらの拡張子を探します。 上の画像のように見つかるはずです。
「読み取り専用で開く」の動作などはこの拡張子のフォルダ配下に直接書き込まれているのではなく、拡張子のフォルダ配下の「Excel.Sheet.12」「Excel.SheetMacroEnabled.12」の名前のフォルダの方にあります。 これらは「コンピューター\HKEY_CLASSES_ROOT」配下の「.」で始まる各拡張子フォルダがアルファベット順に並んでいるさらに下の方にあります。

レジストリエディタ

修正する箇所はこれらの配下にあって、修正作業は同じなので「Excel.Sheet.12」で説明します。



Excel.Sheet.12」を開くと、

レジストリエディタ

このようにサブフォルダがあり、画像のように、
shell」⇒「OpenAsReadOnly」⇒「command」と進んだ所で
右ペインにある「(既定)」を開いて下さい。

レジストリエディタ

「値のデータ」をテキストで抜くと、

 "C:\Program Files (x86)\Microsoft Office\Root\Office16\EXCEL.EXE" /h "%1"
となっているはずです。("EXCEL.EXE"のパスはバージョンやインストール方法によって異なります)



問題はパス名の右の「起動オプション」とか「起動スイッチ」と言われる「 /h 」になっている部分です。
Microsoft Office 製品のコマンド ライン スイッチ」というヘルプの説明を見ても、Excelの欄に「 /h 」は説明されておらず、 逆に「指定されたブックを読み取り専用で開きます。」と説明されているのは「 /r 」です。
そこで、このスイッチを「 /r 」に変更してOKをクリックし、 保存されている何かのワークブックでShiftキーを押しながら右クリックし、「読み取り専用で開く」を選択してみて下さい。
指定のワークブックが開いたら、リボンの「ファイル」タブから「その他」「情報」を選び、「読み取り専用のブック」の表示があるかを確認して下さい。



なお、「Microsoft Office 製品のコマンド ライン スイッチ」というヘルプの説明では、WordPowerPointには Excelの「 /r 」のような「読み取り専用」にあたるスイッチについては説明されていませんでした。

[対策②]デスクトップに「読み取り専用Excel」のショートカットを置く
レジストリ操作に不安があったり、Excel(Office)のアップデートで「元」に戻ってしまうかもしれない問題にも対応できる方法を求める場合は、 デスクトップに「読み取り専用Excel」のショートカットを置くのはいかがでしょうか。
こちらはWindows上でショートカットを作成できる方なら難しくない方法です。



まず、デスクトップにExcelのショートカットを作成します。
ショートカットには「普通のショートカット」と「アドバタイズショートカット」という2種類がありますが、ここで作成するのは「普通のショートカット」です。
よく判らない時は画面左下の「スタート」から「Excel」を探して、右クリックから「ファイルの場所を開く」を選び、 種類が「ショートカット」になっている「Excel」をコピーしてデスクトップに貼り付けて下さい。
(既にデスクトップに「Excel」がある場合は別名にできるようにコピー・貼り付けだけで良いです)



次にデスクトップに貼り付けた「Excel」のショートカットを右クリックし「プロパティ」を開きます。

ショートカットのプロパティ

「ショートカット」タブの「リンク先」は、

 "C:\Program Files (x86)\Microsoft Office\Root\Office16\EXCEL.EXE" /e
となっているはずです。("EXCEL.EXE"のパスはバージョンやインストール方法によって異なります)



この右端にある「 /e 」を「 /r 」に変更してOKをクリックして下さい。



最後にこのショートカットのファイル名を「読み取り専用Excel」とか「Excel読み取り専用」など分かり易い名前に変更して終了です。



保存されている何かのワークブックをこのショートカットの上にドラッグさせてExcelが起動したら、読み取り専用になっているか確認して下さい。



このショートカットを「SendTo」フォルダにコピーして、右クリックの「送る」から起動させるのも良いと思います。