エクセルVBAで使うコードの備忘録。VBAでワードファイルを操作するためにワードドキュメントを開くコード。開く際には引数を指定することで様々なオプションを選択することが可能です。
事前準備
VBAでワードファイルを操作するには、参照設定が必要です。VBAのコードエディタから「ツール > 参照設定」と進み、「Microsoft Word XX.X Object Library」にチェックを入れておきます。
共通コード
説明するコードを簡素化するために使用した変数などの共通部分です。今回のテーマの本質的な部分には関係はありません。コードを使用する際はカッコに囲まれた部分([***])を自分のプログラムに合わせて変更してください。
'--- Wordのアプリケーションオブジェクト ---'
Dim objWord As Word.Application
Set objWord = CreateObject("Word.Application")
objWord.Visible = True
'--- 開くワードドキュメントのパス ---'
Dim docPath As String
docPath = "[ワードファイルのパス]"
'--- 開いたワードドキュメントを格納する変数 ---'
Dim docDoc As Word.Document
ただファイルを開く
ワードドキュメントを開くためには、Word.ApplicationオブジェクトのDocumentsオブジェクトにあるOpen関数を使用します。引数はいくつか指定できますが、ただ開くだけであれば開きたいドキュメントのパスを引数として与えてやればOKです。
'--- ただファイルを開く ---'
Set objDoc = objWord.Documents.Open(docPath)
読み取り専用で開く
読み取り専用で開くには、ドキュメントのパスに加えてReadOnly引数を指定します。この引数をTrueにすると、開かれたドキュメントは読み取り専用になります。
'--- 読み取り専用でファイルを開く ---'
Set objDoc = objWord.Documents.Open(docPath, ReadOnly:=True)
開くのにパスワードが必要な場合
パスワードがかかっている場合は、解除用のパスワードを引数として指定してやらなければなりません。パスワードを指定する引数はその名の通りPasswordです。
'--- パスワードを指定してでファイルを開く ---'
Set objDoc = objWord.Documents.Open(docPath, Password:="[パスワード]")
変更するのにパスワードが必要な場合
ワードドキュメントのパスワードには、ワードドキュメント自体を開くためのものと、編集を可能にするためのものの二種類があります。VBAで開いた文書を変更するためにパスワードを与えなければいけない場合は、引数のWritePasswordDocumentにパスワードを指定します。
'--- パスワードを指定してでファイルを開く ---'
Set objDoc = objWord.Documents.Open(docPath, WritePasswordDocument:="[パスワード]")
その他の引数
上記以外にも多くの引数を与えてドキュメントの開き方を制御することが可能です。詳しく知りたい方は、リンク先マイクロソフトのページをご参照ください。