環境
- Office365 Excel Buisiness
背景
Officeもついに使用するのが365となり、読み取り専用で開くバグ?仕様も直っているかと思いきやぜんぜん直っていなかったため、その方法についてまとめます。基本的に旧Officeとそんなに変わらないように思えます。
Excelファイルを[Shift]キーを押しながら右クリックすると下記のように読み取り専用で開くというメニューが出ます。これはExcelファイルを複数人で使用している場合には非常に有用な機能でExcelをロックせずに開けるので多用します。また一時ファイルを作らないため、他の人から開いていることもわからないです。資料を参照するときに多用します。
ところが、この機能は通常ではなぜか機能しません、レジストリの変更が必要になります。
レジストリの変更
以下のキーを設定します。旧バージョンでも基本的に同じはずです。
[HKEY_CLASSES_ROOT] -> [Excel.Sheet.12] -> [shell] -> [OpenAsReadOnly] -> [ddeexec] -> [規定]
[HKEY_CLASSES_ROOT] -> [Excel.Sheet.8] -> [shell] -> [OpenAsReadOnly] -> [ddeexec] -> [規定]
[HKEY_CLASSES_ROOT] -> [Excel.Sheet.5] -> [shell] -> [OpenAsReadOnly] -> [ddeexec] -> [規定]
必要に応じて(*.xlsm)
[HKEY_CLASSES_ROOT] -> [Excel.SheetMacroEnabled.12] -> [shell] -> [OpenAsReadOnly] -> [ddeexec] -> [規定]
[open("%1",,1,,,,,,,,,,,,1,,1)]
上記だけではうまくいかない場合もあり、その場合、同じ階層にある
[HKEY_CLASSES_ROOT] -> [Excel.Sheet.12] -> [shell] -> [OpenAsReadOnly] -> [command] -> [規定]
[HKEY_CLASSES_ROOT] -> [Excel.Sheet.8] -> [shell] -> [OpenAsReadOnly] -> [command] -> [規定]
[HKEY_CLASSES_ROOT] -> [Excel.Sheet.5] -> [shell] -> [OpenAsReadOnly] -> [command] -> [規定]
[HKEY_CLASSES_ROOT] -> [Excel.SheetMacroEnabled.12] -> [shell] -> [OpenAsReadOnly] -> [ddeexec] -> [規定]
を以下のように変更する
"C:\Program Files (x86)\Microsoft Office\Root\Office16\EXCEL.EXE" /h "%1"
↓
"C:\Program Files (x86)\Microsoft Office\Root\Office16\EXCEL.EXE" /r "%1"
/hって http用の起動スイッチみたい。完全に読み取り専用と関係なさそう。そして参考のリンク読む限りはExcelには必要なさそう。めちゃくちゃだな。
commandの値を/rに変更するだけで読み取り専用にできました。
他のバージョンではDDEの値を変更して直した記憶があるんですが、もうよくわからん。
参考
http://www.shegolab.jp/entry/windows-excel-read-only
https://support.office.com/ja-jp/article/microsoft-office-%E8%A3%BD%E5%93%81%E3%81%AE%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89-%E3%83%A9%E3%82%A4%E3%83%B3-%E3%82%B9%E3%82%A4%E3%83%83%E3%83%81-079164cd-4ef5-4178-b235-441737deb3a6#ID0EAABAAA=Excel