「excel vba word 開く 読み取り専用」
といった検索キーワードで、このサイト『インストラクターのネタ帳』へアクセスがありました。
Excel VBAでWord文書を読み取り専用で開くには、どのようなコードを書けばいいのかを調べていた方による検索です。
Word文書を読み取り専用で開くサンプルマクロ
Cドライブのtempフォルダーにsample.docxを用意しておいてから、以下のExcelマクロを実行してください。
Sub Word文書を読み取り専用で開く()
On Error GoTo ErrHandl
With CreateObject(Class:="Word.Application")
.Documents.Open "C:\temp\sample.docx", ReadOnly:=True
.Visible = True
End With
ErrHandl:
Select Case Err.Number
Case 5174
MsgBox "指定されたWord文書が見つかりませんでした。"
Case Else
MsgBox Err.Description & vbCrLf & Err.Number
End Select
Err.Clear
End Sub
サンプルマクロで行っている処理
Excel VBAでWord文書を読み取り専用で開いているのは、以下の部分です。
With CreateObject(Class:="Word.Application") .Documents.Open "C:\temp\sample.docx", ReadOnly:=True
拙著『Excel VBAユーザーのためのWord VBA入門(1): Document・Range・Selectionの基本編』の、[2-7. Add・OpenメソッドはDocumentsが持つ]で解説しているとおり、DocumentsコレクションにWord文書を開くOpenメソッドが用意されています。
このWord.Documents.Openメソッドに指定できるたくさんの引数の1つ、ReadOnlyにTrueを指定することで、
Word文書を読み取り専用で開けます。
With CreateObject(Class:="Word.Application") .Documents.Open "C:\temp\sample.docx", ReadOnly:=True
だけで、確かにWord文書を読み取り専用で開けるのですが、これだけではメモリ上で開かれているだけでパソコンの画面には何も表示されません。
そこで上記のサンプルマクロでは、開いてから、Word.Application.VisibleプロパティにTrueを設定することで、
.Visible = True
Word.Applicationを画面に表示させています。
Home » エクセルマクロ・Excel VBAの使い方 » Office連携 » Excel VBAでWordを読み取り専用で開く