ブックを[読み取り専用]にする


Excelには、保存するブックに対して「読み取り専用を推奨する」という機能があります。設定するには、[名前を付けて保存]ダイアログボックス右下にある[ツール]をクリックして[全般オプション]を開きます。

こうして設定したブックを開くと「読み取り専用にしますか?」と確認されます。

まさに、推奨されています。いや、推奨されているに過ぎません。これなら、ユーザーが[いいえ]を選択するだけで、自由に編集を上書きできてしまいます。まぁ、そういう機能なのですから、しかたありません。

絶対に!とは言いません。しかし、もっと強固に「読み取り専用で開かせたい」のでしたら、いっそファイルの属性を変更してしまいましょう。エクスプローラでブックのアイコンを右クリックして、[プロパティ]を開くと次のような項目が並んでいます。

下の方に[属性]という項目があって、ここに[読み取り専用]ってのがあります。これがオンになっていると、このファイルは読み取り専用になります。

推奨とかじゃありません。強制です。「読み取り専用にしますかぁ?してくださいよぉ~お願いしますよぉ~」なんて甘いこと言わずに、必ず読み取り専用で開かれます。「絶対に!とは言いません」と書いたのは、これ仕組みを知っているユーザーだったら、エクスプローラで変更できるからです。まぁ、それはしかたないでしょう。

この、ファイルに[読み取り専用]の属性を設定するのって、VBAだと実は簡単です。SetAttrステートメントを使います。

Sub Sample1()
    SetAttr "D:\Work\Book4.xlsx", vbReadOnly
    Workbooks.Open "D:\Work\Book4.xlsx"
End Sub

SetAttrステートメントに関しては「SetAttrステートメント」をご覧ください。