Home » エクセルマクロ・Excel VBAの使い方 » Workbooks・Workbook » Excel VBAでブックを読み取り専用に

Excel VBAでブックを読み取り専用に

対象:Excel2007, Excel2010, Excel2013, Windows版Excel2016

「excel vba 読み取り専用にする」
「エクセル マクロ 読み取り専用設定」
といった検索キーワードでアクセスがありました。

Excel VBAで、ブックを読み取り専用にしたいということでしょう。

[スポンサードリンク]

Workbook.ChangeFileAccessメソッドで読み取り専用にするサンプルマクロ

以下のSubプロシージャを実行すると、アクティブなブックが読み取り専用になります。
Sub ブックを読み取り専用にする()
 ActiveWorkbook.ChangeFileAccess xlReadOnly
End Sub

WorkbookオブジェクトのChangeFileAccessメソッドの引数に、

VBAで読み取り専用に

XlFileAccess列挙に定義されている定数・xlReadOnlyを指定すれば、

VBAで読み取り専用に

読み取り専用になります。

逆に、定数・xlReadWriteを引数に指定してWorkbook.ChangeFileAccessメソッドを呼べば、読み書き可能になります。

Workbooks.Openメソッドを使って読み取り専用でブックを開くサンプルマクロ

「エクセル 読み取り専用で開くマクロ」
という検索キーワードでのアクセスもあります。

開く段階で読み取り専用にするなら以下のようなSubプロシージャです。
Sub ブックを読み取り専用で開く()
 Workbooks.Open _
   Filename:="C:\TEMP\SAMP.xlsx", _
   ReadOnly:=True
End Sub

WorkbooksコレクションオブジェクトのOpenメソッドの引数・ReadOnlyに、

VBAで読み取り専用に

Trueを設定すれば、引数・Filenameで指定されたブックが、読み取り専用で開かれます。

Workbook.ReadOnlyプロパティでは読み取り専用に設定できない

WorkbookオブジェクトにはReadOnlyという名前のプロパティがあり、
 ActiveWorkbook.ReadOnly = True
とすることで、読み取り専用にできると考える方もおられるかもしれませんが、これはダメです。

Workbook.ReadOnlyプロパティは、

VBAで読み取り専用に

読み取り専用のプロパティであるため、読み取り専用かどうかの取得はできますが設定はできません。

[スポンサードリンク]

Home » エクセルマクロ・Excel VBAの使い方 » Workbooks・Workbook » Excel VBAでブックを読み取り専用に

「Workbooks・Workbook」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.