経緯とか
Windows 10
Office 2016
よくある「読み取り専用で開く」を有効化したかった。
でもぐぐったらよく出てくる、DDEオプションを修正する方法ではうまく行かなかったぷーん
いろいろ調べて解決できたので残しておこうと思います
環境(orバージョン)的なものなのか、過去の自分がやらかしただけなのかはわからないですが、同じような現象で悩んでる人の参考になれば幸いです
# 記事内では .xlsx
のみを記載してますが、 .xls
とか .xlsm
とか、その辺も同様に有効化させたいときにはいい感じに読み替えてください。
TL;DR
[HKEY_CLASSES_ROOT\Excel.Sheet.12\shell\OpenAsReadOnly]
@="読み取り専用で開く(&R)"
"Extended"=-
[HKEY_CLASSES_ROOT\Excel.Sheet.12\shell\OpenAsReadOnly\command]
@="\"C:\\hoge\\foo bar\\EXCEL.EXE\" /r \"%1\""
いつものやつ(?)
Shiftキー押さなくてもコンテキストメニューに出したい
[HKEY_CLASSES_ROOT\Excel.Sheet.12\shell\OpenAsReadOnly]
@="読み取り専用で開く(&R)"
"Extended"=-
読み取り専用でちゃんと開くようにDDEコマンドを修正
[HKEY_CLASSES_ROOT\Excel.Sheet.12\shell\OpenAsReadOnly\ddeexec]
@="[open(\"%1\",,1,,,,,,,,,,,,1,,1)]"
かんぺき。
……じゃない。普通に開いちゃうじゃん。なんで!
そもそもDDEが使われてなかった
いろいろ調べてみて、レジストリでのファイルの開き方のたどり方を勉強してみた。
.xlsx
でのファイルを開く際のコマンドを見てみたら、
[HKEY_CLASSES_ROOT\Excel.Sheet.12\shell\OpenAsReadOnly\command]
@="\"C:\\hoge\\foo bar\\EXCEL.EXE\" /h \"%1\""
DDE使われてないじゃん!1
# DDEを使うときは、 EXCEL.EXE
に /dde
オプションを指定するらしいです。
/h
オプションってなんだろう……載ってないんだけど……
というわけで、ここの EXCEL.EXE
に対して /r
のオプションを指定。
ついでによくわからない /h
オプションも削除。
[HKEY_CLASSES_ROOT\Excel.Sheet.12\shell\OpenAsReadOnly\command]
@="\"C:\\hoge\\foo bar\\EXCEL.EXE\" /r \"%1\""
(開発がrとhをtypoしたとかそういうオチなのかなこれ)
無事しっかり読み取り専用で開けるようになりました。
めでたしめでたし。
ちなみに、
[HKEY_CLASSES_ROOT\Excel.Sheet.12\shell\OpenAsReadOnly\ddeexec]
@="[open(\"%1\",,1,,,,,,,,,,,,1,,1)]"
↑これは削除してしまっても大丈夫です。
-
Windows10から?こうなってるのか、自分がよくわからないまま別のところで調べてたときに直しちゃったのかは謎……わかる方ぜひ教えてください。 ↩