PR

【Excel自動化】毎回のパスワード入力を省略!VBAで特定ファイルを自動オープンする方法

Excel
記事内に広告が含まれています。

業務で使うExcel、セキュリティの都合上パスワード付きにしている方も多いですよね。

でも正直、

毎回編集するたびにパスワード打つの面倒くさいな~
自動で開けたらいいのに。。。

とか、

あ、パスワード打ち間違えた!(泣
またファイル開かないといけない。。。

など思ったことはありませんか。

私も資料の作成・更新をするのですが、
・他の人と進捗状況を共有したい
・ただ自分以外の人には編集してほしくない(数式とか壊されたりすると大変だったりするので)

ということで、編集ができないようにパスワードを書けることがよくあります。

ただ毎日作業・更新するファイルが多いので、Excelが2,3,4個…など増えてくると、、、

あ~~!!もう面倒くさい~~!!!

と心の中で叫んでたりします。(笑)

本記事では、そんな悩みを解決してくれる
パスワード入力なしで自動的にExcelファイルを開く方法
を紹介します。

この方法を使えば、作業効率が大幅にアップすること間違いなし!
コード付きで分かりやすく紹介していきますので、最後まで読んでいただけると嬉しいです。

■この記事で分かること

・パスワード付きのExcelをVBAで開く基本構文
・「読み取りパスワード」と「書き込みパスワード」の違い
・複数ファイルを一括で開く応用テクニック
・セキュリティ面での注意点

前提条件・注意点

初めに、本記事の内容を活用されるにあたり、以下注意点はご理解をお願いいたします。

セキュリティについて

※前提条件・注意点※
紹介するVBAは、パスワード付きのブックを開く便利な方法ですが、
・パスワードが分かっている前提であること
・VBAにパスワードを記載するため、セキュリティ上のリスク(第三者にも開かれてしまう可能性)があること

は十分ご認識のうえ、参照されてください。

職場などで使用する場合、社内ルールやセキュリティポリシーに従って活用されてください。

ファイルを開くパターンと特徴一覧

VBAコードを紹介する前に、ファイルを開く他の方法との比較をしておきましょう。

方法特徴向いている状況
手入力で毎回入力セキュリティが高い不特定多数と共有
VBAで自動入力効率重視、時短社内運用、自分だけで使うExcel
パスワードなしで保存リスクは高いが操作は楽セキュリティ不要な資料共有時

VBAを使えば、毎回の操作が不要になるので、社内用ファイルや定型業務には特におすすめです。
状況に応じて活用していきましょう。

パスワードには、「書き込み」と「読み取り」の2種類がある

この記事を読んでいる方には不要の説明かと思いますが、、、
Excelでかけることのできるパスワードは、「書き込み」用と「読み取り」用の2種類があります。

パスワードの種類説明(パスワードが分からない場合)
書き込みパスワードパスワードを知らないと、Excelの編集ができない
読み取りパスワードパスワードを知らないと、Excelを開くことができない

つまり、

・Excelを共有したいけど、自分以外が編集できると困る    → 書き込みパスワード
・パスワードを知っている人にしか、Excelを見られてたくない → 読み取りパスワード

という使い分けができます。

ではなぜこの説明をあえてしたかというと、
VBAに記述するとき、「書き込み」と「読み取り」で記述方法が異なるから
です。

では実際に、どのように記述したらよいか説明していきます。

書き込みパスワード付きExcelを開くには?

書き込みパスワードを設しているExcelを開く場合、以下の記述で開くことができます。

Workbooks.Open Filename:="ファイルのフルパス", WriteResPassword:="書き込み用パスワード"

このコードは、指定したブックに書き込み用パスワードを自動入力して開くものです。
”書き込み用パスワード”部分は、実際のパスワードに書き換えてください。

※注意※
「ファイルのフルパス」、「パスワード」はそれぞれ、始まりと終わりを「”」(ダブルクォーテーション)で囲ってください。

実際にExcel VBAに記述するサンプルを作成しました。
「ファイルのフルパス」、「書き込み用パスワード」は実際に使用するものへ修正してください。

Sub PWWrite_Book_Open()

    On Error Resume Next
    
    Workbooks.Open _
        Filename:="ファイルのフルパス", _
        WriteResPassword:="書き込み用パスワード"

    If Err.Number = 0 Then
        MsgBox "Excelを開けました。編集可能です。",vbInformation
    Else
        MsgBox "Excelを開けませんでした。パスワードを確認してください。",vbExclamation
    End If

    On Error GoTo 0

End Sub

ちなみにVBAのコード設定・実行方法は、以下記事にて紹介しています。
こちらもぜひご参照ください。

※参照を一括で切り替えるVBAコード一覧>絶対参照に変更するVBAコード部分に記載

実際にこのVBAを使って、Excelを開いてみましょう。
以下のように、開きたいExcelとVBAを記述したファイルを用意しました。

・開きたいファイル:「書き込みパスワードを設定したExcel_1」
・ファイルを開くVBAを記述しているファイル:「パスワードExcelを開くVBAファイル」

image_vba_autoopen_write_No1

こちらを実行すると、ちゃんとファイルを開くことができました!

image_vba_autoopen_write_No2

読み取りパスワード付きExcelをVBAで開くには?

読み取りパスワードを設しているExcelを開く場合、以下の記述で開くことができます。

Workbooks.Open Filename:="ファイルのフルパス", Password:="読み取り用パスワード"

このコードは、指定したブックに読み取り用パスワードを自動入力して開くものです。
”読み取り用パスワード”部分は、実際のパスワードに書き換えてください。

実際にExcel VBAに記述するサンプルを作成しました。
「ファイルのフルパス」、「読み取り用パスワード」は実際に使用するものへ修正してください。

Sub PWRead_Book_Open()

    On Error Resume Next
    
    Workbooks.Open _
      Filename:="ファイルのフルパス", _
      Password:="読み取り用パスワード"

    If Err.Number = 0 Then
        MsgBox "Excelを開けました。",vbInformation
    Else
        MsgBox "Excelを開けませんでした。パスワードを確認してください。",vbExclamation
    End If

    On Error GoTo 0

End Sub

こちらも同じように、Excelを開いてみましょう。
以下のように、開きたいExcelとVBAを記述したファイルを用意しました。

・開きたいファイル:「読み取りパスワードを設定したExcel」
・ファイルを開くVBAを記述しているファイル:「パスワードExcelを開くVBAファイル」

image_vba_autoopen_read_No1

こちらを実行すると、ちゃんとファイルを開くことができました!

image_vba_autoopen_read_No2

複数ファイルをまとめて開くには?(応用テク)

日々使うファイルが複数あるなら、ループ処理でまとめて開くのがおすすめです。
以下は2つのExcelファイルを一括で開くVBAです。

Sub PWWrite_Book_Open_Multiple()

    Dim fileList As Variant
    Dim pwList As Variant
    Dim i As Integer

    fileList = Array("ファイルのフルパス1", "ファイルのフルパス2")
    pwList = Array("パスワード1", "パスワード2")

    For i = LBound(fileList) To UBound(fileList)

        On Error Resume Next
        Workbooks.Open Filename:=fileList(i), WriteResPassword:=pwList(i)
        If Err.Number <> 0 Then
            MsgBox "開けなかったファイル:" & fileList(i), vbExclamation
        End If

        On Error GoTo 0

    Next i

End Sub

では最後に、複数のExcelを開いてみましょう。
今回は書き込みパスワードがかかった2ファイルを開きたいと思います。

・開きたいファイル:「書き込みパスワードを設定したExcel_1」、「書き込みパスワードを設定したExcel_1」の2ファイル
・ファイルを開くVBAを記述しているファイル:「パスワードExcelを開くVBAファイル」

image_vba_autoopen_multiple_No1

こちらを実行すると、ちゃんと2ファイルとも開くことができました!

image_vba_autoopen_multiple_No2

セキュリティ面での注意点

今回はパスワード付きExcelを開く方法を紹介しましたが、この方法はVBAの中にパスワードを記述することになるため、以下の点にご注意ください。

・コードにパスワードを平文で書くことになるため、他人と共有しない
・VBAプロジェクト自体にパスワード保護を書けることである程度の安全性は確保可能
・社内ルールやセキュリティポリシーに従うことが大前提

元々「共有したいけど編集されたくない」や「中身を見られたくない」からパスワードをかけているはずなので、十分注意の上、ご活用ください。

まとめ:手間を自動化して、作業時間をグッと短縮!

パスワード付きのExcelファイルも、VBAを使えば数行のコードで自動オープンが可能です。

特に毎日使う複数ファイルがある場合、業務効率は段違い!
面倒なパス入力を卒業して、もっとスマートにExcelを使いこなしましょう。

この記事が役に立ったと思った場合、ブックマークやシェアしてもらえると嬉しいです。
また、質問やこんな方法を紹介してほしい!などありましたら、お気軽にコメントしてください。

最後まで読んでいただき、ありがとうございました!

ろじゃー

仕事・子育てに奮闘中の社会人です。
仕事でも日常生活でも、ちょっとでも便利になることが紹介できるブログを書いています!
 
仕事柄、PC操作やエクセル、VBAなどは得意です!
Excel歴は10年以上の事務職。
関数やVBAを活用して、資料作成やデータ分析をはじめとした様々な業務の効率化・自動化に取り組んできました。
 
このブログでは、実際の業務で使える効率化テクニックを発信しています。
「わからない」や「困った」など問題を抱える方や、もっと効率化したいと思っている方に、少しでも役立てれば幸いです!

ご質問・ご相談など、お気軽にご連絡ください。

ろじゃーをフォローする
ご質問・ご相談はこちらへ!
 ろじゃー|日々、ちょっとずつ良くなることを目指すブロガー
Excel歴10年以上。VBAや関数、業務効率化などを発信中。
📩 お問い合わせはこちら
Excel
シェアする
ろじゃーをフォローする

コメント

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