マクロでExcelBookを開こうとすると、「作成者は、’***.xlsx' を変更する必要がなければ、読み取り専用で開くようにしています。読み取り専用で開きますか?」と表示されてしまう時の対処法

Excelファイルを渡すとExcelをバックグラウンドで立ち上げてPDFに変換するサーバーを立てていたのだけど、時々「作成者は、’***.xlsx' を変更する必要がなければ、読み取り専用で開くようにしています。読み取り専用で開きますか?」
と表示されて停止してしまうことがあった。

忙しいことを理由に「はい」をクリックしてその場を凌いでいたのだけど、さすがに都度リカバリ作業が面倒になってきたので対処する。

再現方法

マクロで読み込ませたいExcelブック保存の際、
「ツール」ー「全体オプション」と辿り

読み取り専用を推奨するにチェックを付ける

このExcelファイルを下記のVBAマクロなどで読み込ませようとするとダイアログが表示されマクロが中断される。

Workbooks.Open Filename:="D:\tmp\excel_test\Book1.xlsx"

読み取り専用で開くかのポップアップを出させなくする

F2押下してオブジェクトブラウザを見ると、それらしいプロパティ名を見つけた。

Function Open(
    Filename As String,
     [UpdateLinks],
     [ReadOnly],
     [Format],
     [Password],
     [WriteResPassword],
     [IgnoreReadOnlyRecommended], <------ それっぽい
     [Origin],
     [Delimiter],
     [Editable],
     [Notify],
     [Converter],
     [AddToMru],
     [Local],
     [CorruptLoad]
) As Workbook

マクロを以下のように修正したら読み込み確認のダイアログは表示されなくなった。

Workbooks.Open Filename:="D:\tmp\excel_test\Book1.xlsx", IgnoreReadOnlyRecommended:=True

コメント

タイトルとURLをコピーしました