« セルの結合を解除して結合されていた全セルに同じ値を入力する | トップページ | カテゴリー「Excel」の記事一覧 »

2020年5月21日 (木)

[読み取り専用を推奨する]設定

デフォルトの設定ではブックは編集可能な状態で開かれます。
ブックの内容を見たいだけの場合,
誤って上書き保存しないようないに
ブックを開く際に読み取り専用で開くか選ぶことができる
[読み取り専用を推奨する]という設定があります。

手動でブックを[読み取り専用を推奨する]で保存するには
次のようにします。
[ファイル]-[名前を付けて保存]-[参照]をクリックすると
次のウィンドウが開きます。
Vba20200521a

[ツール]-[全般オプション]をクリックし,
[読み取り専用を推奨する]にチェックを入れます。
Vba20200521b


あとは保存先・ファイル名を指定して[保存]をクリックします。



VBAで[読み取り専用を推奨する]設定で保存するには
SaveAsメソッドの引数ReadOnlyRecommendedをTrueに指定します。

次のコードはブックを新規作成して
[読み取り専用を推奨する]設定で保存して閉じます。
保存先は変数path,ファイル名は変数f_nameで指定します。

[読み取り専用を推奨する]設定をするコード:

Sub macro20200521a()
'[読み取り専用を推奨する]で保存

    Dim f_path As String
    Dim f_name As String
    f_path = "C:\Users\username\Documents\yamuemuVBA"
    f_name = "Book.xlsx"
   
    Workbooks.Add
    ActiveWorkbook.SaveAs Filename:=f_path & "\" & f_name, _
        FileFormat:=xlOpenXMLWorkbook, ReadOnlyRecommended:=True
    ActiveWorkbook.Close

End Sub

上のコードで作成されたブックを開くと
次のようなアラートが表示されます。

Vba20200521c

[はい]をクリックすると読み取り専用で開きます。
[いいえ]で編集できる状態で開きます。
[キャンセル]でブックを開くことを中止します。



VBAで
[読み取り専用を推奨する]で保存したブックを
開く方法を見ていきます。
次のコードを実行するとブックは開きますが
アラートが表示されコードが中断されます。

[読み取り専用を推奨する]設定のブックを開くコード1:

Sub macro20200521b()
'[読み取り専用を推奨する]で保存したブックを開く
'アラートが表示されてコードが中断される

    Dim f_path As String
    Dim f_name As String
    f_path = "C:\Users\username\Documents\yamuemuVBA"
    f_name = "Book.xlsx"
   
    Workbooks.Open Filename:=f_path & "\" & f_name

End Sub

読み取り専用で開く場合に
アラートが出ないようにするには
Openメソッドの引数ReadOnlyをTrueにします。
この指定をすると
[読み取り専用を推奨する]設定ではないブックも
読み取り専用で開くことができます。

[読み取り専用を推奨する]設定のブックを開くコード2:

Sub macro20200521c()
'[読み取り専用を推奨する]で保存したブックを開く
'読み取り専用で開く

    Dim f_path As String
    Dim f_name As String
    f_path = "C:\Users\username\Documents\yamuemuVBA"
    f_name = "Book.xlsx"
   
    Workbooks.Open Filename:=f_path & "\" & f_name, _
        ReadOnly:=True

End Sub

上記コードで開かれたブックは
ウィンドウのタイトルの部分に[読み取り専用]と表示されます。



[読み取り専用を推奨する]で保存したブックを
編集可能な状態で開くには次のようにします。

[読み取り専用を推奨する]設定のブックを開くコード3:

Sub macro20200521d()
'[読み取り専用を推奨する]で保存したブックを開く
'編集可能状態で開く
   
    Dim f_path As String
    Dim f_name As String
    f_path = "C:\Users\username\Documents\yamuemuVBA"
    f_name = "Book.xlsx"
   
    Workbooks.Open Filename:=f_path & "\" & f_name, _
        ignorereadonlyrecommended:=True

End Sub

ちなみにアラートを表示させないようにして
[読み取り専用を推奨する]で保存したブックを開くと
読み取り専用で開かれます。

[読み取り専用を推奨する]設定のブックを開くコード4:

Sub macro20200521e()
'[読み取り専用を推奨する]で保存したブックを開く
'読み取り専用で開く

    Dim f_path As String
    Dim f_name As String
    f_path = "C:\Users\username\Documents\yamuemuVBA"
    f_name = "Book.xlsx"
   
    Application.DisplayAlerts = False
    Workbooks.Open Filename:=f_path & "\" & f_name
    Application.DisplayAlerts = True

End Sub

使用Ver:Win10, Excel For Office365

|

« セルの結合を解除して結合されていた全セルに同じ値を入力する | トップページ | カテゴリー「Excel」の記事一覧 »

コメント

この記事へのコメントは終了しました。