EXCEL VBAで「ファイル」を開く方法【読み取り専用・パスワード付き】(Openメソッド)

EXCEL
この記事は約6分で読めます。

・VBAで読み取り専用で開く方法ってどうするんだろう
・パスワード付きファイルはVBAで開けるの

このような問題を解決できます。

結論、VBAで読み取り専用で開くことも可能ですし、パスワード付きのファイルも簡単に開くことが可能です。

今回はEXCELブックに限定しています。(テキストファイルやCSVは別と考えてください)

読み取り専用で開く(属性を付けたり)方法を2種類、パスワード付きのファイルの開き方も2種類紹介します。

【読み取り専用で開く方法】
・WorkbooksコレクションOpenメソッドを使用する方法(ReadOnly)
SetAttrステートメントを使用する方法
【パスワード付きのファイルを開く方法】
WorkbooksコレクションOpenメソッドを使用する方法
(Password)(WriteResPassword)

基本的なファイルの開き方は、こちらを見てください。

>>EXCEL VBAで「ファイル」を開く基本の方法(Openメソッド)

少し本題から道が逸れる場合があります。結論部分をすぐにご覧いただきたい場合は、
目次の目的題目を押してください。

読み取り専用でファイルを開く方法

読み取り専用で開く(属性を付けたり)方法は大きく2種類紹介します。

Openメソッドを使用する方法(ReadOnly)

WorkbooksコレクションOpenメソッドを使用します。

後ろに「ReadOnly:=True」をつけると読み取り専用で開くことできます。

実際のサンプルコードをご覧ください。

Sub SampleCode1()

    'ファイルパスを変数に代入 ※文字が多くなるので省略したいからです
  FileSumple = "C:\Users\sumple\FileBOX\開く予定のファイル.xlsx"

    'ファイルを開く
    Workbooks.Open Filename:=FileSumple, ReadOnly:=True

End Sub

赤文字にしている文字が重要です。

でもとても簡単に読み取り専用でファイルをひらくことができます。

SetAttrステートメントを使用する方法

SetAttrステートメントを使用します。

あらかじめ読み取り専用の属性をつけますが「vbReadOnly」をつけることで可能です。

この方法は、先ほどのReadOnly:=Trueとは若干考え方が違い開く段階で読み取り専用にするのではなく、先に読み取り専用の属性を付けて、ファイルを開く方法となります。

実際のサンプルコードをご覧ください。

Sub SampleCode2() 
    
    'ファイルパスを変数に代入 ※文字が多くなるので省略したいからです
    FileSumple = "C:\Users\sumple\FileBOX\開く予定のファイル.xlsx" 
   
    'ファイルに読み取り専用の「属性」を付ける 
    SetAttr FileSumple, vbReadOnly
    
    'ファイルを開く
    Workbooks.Open Filename:=FileSumple

End Sub

要するに元々読み取り専用ではないファイルを読み取り専用の属性を付けてから、ファイルを開くということになります。

本来、EXCELブックは特に変更する必要がない場合は、読み取り専用で開くことが推奨されています。

パスワード付きのファイルを開く方法

通常パスワード付きのファイルを開く場合は、パスワードの入力を求められるダイアログが表示されます。

しかし、事前にパスワードを設定しておくことで、ダイアログを表示することなく素早く開くことができます。

ファイルにつけるパスワードは「読み取りパスワード」と「書き込みパスワード」があります。

読み取りパスワード付きのファイルを開く場合

WorkbooksコレクションOpenメソッドを使用します。

後ろに「Password:=”○○○”」を使用することで、読み取りパスワードを入力した状態でファイルを開くことができます。
※○○○はパスワードが入ります。

実際のサンプルコードをご覧ください。

Sub SampleCode3() 

  'ファイルパスを変数に代入 
  FileSumple = "C:\Users\sumple\FileBOX\開く予定のファイル.xlsx" 

  'ファイルを開く 
  Workbooks.Open Filename:=FileSumple, Password:=111

End Sub

特に難しいことはなく、Openメソッドの後ろに「Password:=~~」を入れるだけです。

ファイルを開く度にパスワードを入力していると時間もかかり非常に非効率です。

パスワードがわかっている状態で、管理する立場にあれば使用することも多いかもしれません。

書き込みパスワード付きのファイルを開く場合

こちらもWorkbooksコレクションOpenメソッドを使用します。

後ろに「WriteResPassword:=”○○○”」を使用することで、書き込みパスワードを入力した状態でファイルを開くことができます。
※○○○はパスワードが入ります。

ちなみに書き込みパスワードとは、ファイルの内容を編集・変更するために必要なパスワードです。
書き込みパスワードが設定されているファイルは、パスワードを入力しないと見ることはできても編集することができません。

実際のサンプルコードをご覧ください。

Sub SampleCode4() 

  'ファイルパスを変数に代入 
  FileSumple = "C:\Users\sumple\FileBOX\開く予定のファイル.xlsx" 

  'ファイルを開く 
  Workbooks.Open Filename:=FileSumple, WriteResPassword:=111

End Sub

特に難しいことはなく、Openメソッドの後ろに「WriteResPassword:=~~」を入れるだけです。

まとめ

EXCEL VBAで【読み取り専用・パスワード付き】「ファイル」を開く方法を紹介しました。

ファイルを開く度にわざわざパスワードを入れたりすると、非常に時間も手間もかかります。

簡単に作業を自動化できるので、ぜひ試してみてください。

※私の場合は、コードを書くことは短いコードでもどのように書くと良いかわからなくなったりします。
このようにファイルを開くコード(短いコード)で、プログラムを作る練習をすることも一つの手です。
一緒にがんばりましょうね。

記載内容に訂正箇所、不明箇所がございましたら、問い合わせフォームよりご一報いただけますと誠に幸いです。
すぐに確認し、適切な対応をさせていただきます。
今後も本サイトを何卒よろしくお願い致します。

コメント