Excelファイルに一括パスワード設定! 一括解除も解説【コピペ用マクロコードあり】

2019/12/27

ITスキル

Excelでは、パスワードを入力しないとファイルが開けないように設定することが可能です。しかし、複数のファイルの場合には、一つずつパスワードを設定しているとたいへんに手間がかかります。そこで今回は、Excelのマクロ機能を使って、複数のExcelファイルに一括でパスワードを設定・解除する方法を解説します。

<目次・お困りごとの解決策>

1.マクロについて
2.パスワード一括設定の準備
3.Excelでマクロを作成するための手順
4.パスワード一括設定マクロの作成手順【コード例】
5.パスワード一括設定マクロの使い方
6.パスワードの一括解除の準備
7.パスワード一括解除マクロの作成手順【コード例】
8.パスワード一括解除マクロの使い方

▼<上記に解決策がないときは・・・>
Excelの関連記事はこちら

マクロについて

はじめに、マクロについて簡単に解説します。マクロは、ExcelをはじめとするOffice製品に装備されている機能で、ユーザーによる操作を記録することにより、自動的に実行させるものです。

マクロの記録では、Excelなどで操作した内容をVBA(Visual Basic for Applications)内に、コードとして記述します。今回は、マクロ機能の延長として、VBAにコードを直接記載することで、パスワードの一括設定・解除を行います。

パスワードの一括設定をする

それでは、具体的にパスワードの一括設定を行ってみましょう。パスワードの一括設定は、次の条件下で行うものとします。

・パスワード一括設定用のExcelファイルを作成する。
・パスワード一括設定用のExcelファイルと同じフォルダ内にある複数のExcelファイルにパスワードを適用する。

Excelでマクロを作成するための手順

(1)Excelの[ファイル]タブをクリックし、「オプション」を選択します。

Excel マクロ パスワード一括設定 VBA

(2)Excelのオプションから「リボンのユーザー設定」を選択し、「開発」にチェックを入れてOKボタンを押します。

Excel マクロ パスワード一括設定 VBA

パスワード一括設定マクロの作成手順【コード例】

(1)[開発]タブから「Visual Basic」を選択します。

(2)VBAの画面から、「Sheet1」を右クリックし、「挿入」―「標準モジュール」を選択します。

Excel マクロ パスワード一括設定 VBA

(3)次のコードをコピー&ペーストします。

Excel マクロ パスワード一括設定 VBA

Option Explicit
  
 
Sub ProtectFilesForExcel()
  Dim MacroBook As String
  Dim PassSetBook As Workbook
  Dim CurDirFile As String
  Dim SetPass As String
  SetPass = InputBox _
    ("設定するパスワードを入力してください", "パスワード入力")
 
  If StrPtr(SetPass) = 0 Then Exit Sub
 
  MacroBook = ThisWorkbook.Name
  CurDirFile = Dir(CurDir & "\*.xls*")
 
  With Application
    .ScreenUpdating = False
    .DisplayAlerts = False
  End With
 
  Do While CurDirFile <> ""
    Set PassSetBook = Workbooks.Open _
        (Filename:=(CurDirFile))
    With PassSetBook
      If .Name <> MacroBook Then
        .SaveAs Filename:=(CurDirFile), _
                Password:=SetPass
        .Close
      End If
    End With
    CurDirFile = Dir()
  Loop
 
  With Application
    .ScreenUpdating = True
    .DisplayAlerts = True
  End With
 
  MsgBox "パスワード設定完了", vbOKOnly
  End Sub


(4)Excelに戻り、[開発]タブから「挿入」―「ボタン」を選択します。

Excel マクロ パスワード一括設定 VBA

(5)ボタンを配置する場所をクリック。「マクロの登録」画面で作成したマクロを選択してOKボタンをクリックします。

Excel マクロ パスワード一括設定 VBA

(6)ファイルを「Excelマクロ有効ブック(*.xlsm)」として保存します。

Excel マクロ パスワード一括設定 VBA

パスワード一括設定マクロの使い方

(1)パスワード一括設定マクロと同じフォルダに、パスワードを設定するExcelファイルを用意します。

Excel マクロ パスワード一括設定 VBA

(2)パスワード一括設定用Excelファイルを開き、マクロを登録したボタンをクリックします。

Excel マクロ パスワード一括設定 VBA

(3)パスワードを入力します。

Excel マクロ パスワード一括設定 VBA

(4)パスワード設定完了画面が出たら、OKボタンをクリックします。

Excel マクロ パスワード一括設定 VBA

(5)パスワードが設定されており、ファイルを開くとパスワード入力画面が表示されます。

Excel マクロ パスワード一括設定 VBA

パスワードの一括設定を解除する

次に、一括設定したExcelファイルのパスワードを一括解除するためのマクロを作ってみましょう。パスワードの一括解除は、次の条件下で行うものとします。

・パスワード一括設定用のExcelファイルに新たなマクロを作成する。
・パスワード一括解除用のExcelファイルと同じフォルダ内にある複数Excelファイルに適用する。

パスワード一括解除マクロの作成手順【コード例】

(1)[開発]タブから「Visual Basic」を選択します。

(2)VBAの画面から、「Module1」を開き、最下部に次のコードをコピー&ペーストします。

Excel マクロ パスワード一括解除 VBA

Sub UnProtectFilesForExcel()
  
  Dim MacroBook As String
  Dim PassUnSetBook As Workbook
  Dim CurDirFile As String
  Dim UnSetPass As String
  UnSetPass = InputBox _
    ("解除するパスワードを入力してください", "パスワード入力")
 
  If StrPtr(UnSetPass) = 0 Then Exit Sub
 
  MacroBook = ThisWorkbook.Name
  CurDirFile = Dir(CurDir & "\*.xls*")
 
  With Application
    .ScreenUpdating = False
    .DisplayAlerts = False
  End With
 
  Do While CurDirFile <> ""
    Set PassUnSetBook = Workbooks.Open _
        (Filename:=(CurDirFile), Password:=UnSetPass)
    With PassUnSetBook
      If .Name <> MacroBook Then
        .SaveAs Filename:=(CurDirFile), _
                Password:=""
        .Close
      End If
    End With
    CurDirFile = Dir()
  Loop
 
  With Application
    .ScreenUpdating = True
    .DisplayAlerts = True
  End With
 
  MsgBox "パスワード解除完了", vbOKOnly
  End Sub


(3)Excelに戻り、[開発]タブから「挿入」―「ボタン」を選択します。

Excel マクロ パスワード一括解除 VBA

(4)ボタンを配置する場所をクリック。「マクロの登録」画面で作成したマクロを選択してOKボタンをクリックします。

Excel マクロ パスワード一括解除 VBA

パスワード一括解除マクロの使い方

(1)パスワード一括解除マクロと同じフォルダに、パスワードを解除するExcelファイルを用意します。

Excel マクロ パスワード一括解除 VBA

(2)パスワード一括解除用Excelファイルを開き、解除マクロを登録したボタンをクリックします。

Excel マクロ パスワード一括解除 VBA

(3)解除用のパスワードを入力します。

Excel マクロ パスワード一括解除 VBA

(4)パスワード解除完了画面が出たら、OKボタンをクリックします。

Excel マクロ パスワード一括解除 VBA

(5)設定されていたパスワードが削除され、Excelファイルが開けるようになります。

まとめ

Excelファイルは表計算で用いられることが多く、重要書類の作成にも使われるソフトです。そのため、パスワードを設定する機会も多くなります。複数のファイルにパスワードを設定する際は、今回紹介したマクロを利用して、業務を効率的に進めることができるようにしましょう。

(学生の窓口編集部)

関連記事

新着記事

もっと見る

HOT TOPIC話題のコンテンツ[PR]

注目キーワード

注目:社会人ライフ全般

ITスキルの人気記事ランキング

  • 新生活準備応援クーポン特集





    ピックアップ [PR]