Excel でユーザーごとに個別のワークシートをパスワードで保護するには、どうすればよいでしょうか?
Excel では、異なるワークシートにそれぞれ異なるパスワードを設定できます。つまり、あるユーザーは特定のパスワードで1 つのワークシートを編集でき、別のユーザーは別のパスワードで別のワークシートを編集できるということです。ただし、場合によっては、各ユーザーが自分のワークシートのみを表示・アクセスできるようにしたいだけの場合もあるでしょう。このような要件は、Excel で実現可能でしょうか?
各ワークシートを個別に保護し、ユーザーのワークシートへのアクセスを制限するには、以下の VBA コードを適用してください。
1.Excel ブックで新しいワークブックを開き、「Main」という名前の新しいシートを作成します(下記スクリーンショット参照)。

2.次に、「Alt」+「F11」キーを押して「Microsoft Visual Basic for Applications」ウィンドウを開きます。「プロジェクト - VBAProject」ペインの左側にある「ThisWorkbook」をダブルクリックして空のコードモジュールを開き、次の VBA コードをコードウィンドウにコピー&ペーストしてください(下記スクリーンショット参照)。
VBA コード:ユーザーごとに個別のシートをパスワードで保護する
Option Explicit
Dim gUserName As String
Dim gUserPass As String
Private Sub Workbook_Open()
'Updateby ExtendOffice
Dim xWShs As Sheets
Dim xWSh As Worksheet
Dim xUserName As String
Dim xPass As String
Dim xBolH As Boolean
GTINPUT:
xUserName = InputBox("Enter the user name")
If TypeName(xUserName) = "String" Then
If xUserName = "" Then
Exit Sub
End If
End If
xUserName = LCase(xUserName)
xPass = InputBox("User name:" & xUserName & Chr(13) & Chr(10) & "Enter the password:")
If TypeName(xPass) = "String" Then
If xPass = "" Then
MsgBox "The password is incorrect, please enter the user name and password again."
GoTo GTINPUT
End If
Else
MsgBox "The password is incorrect, please enter the user name and password again."
GoTo GTINPUT
End If
Set xWShs = Worksheets
xBolH = False
For Each xWSh In Worksheets
If xWSh.Name = xUserName Then
xBolH = True
Exit For
End If
Next
If xBolH Then
Set xWSh = xWShs(xUserName)
On Error GoTo GTINPUT2
xWSh.Unprotect (xPass)
xWSh.Visible = True
xWSh.Activate
Else
Set xWSh = xWShs.Add
xWSh.Name = xUserName
xWSh.Activate
End If
gUserName = xUserName
gUserPass = xPass
Exit Sub
GTINPUT2:
MsgBox "The password is incorrect, please enter the user name and password again."
GoTo GTINPUT
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim xWSh As Worksheet
On Error Resume Next
Set xWSh = Worksheets(gUserName)
xWSh.Protect Password:=gUserPass, DrawingObjects:=False, Contents:=True, Scenarios:= _
False, AllowFormattingCells:=True, AllowFormattingColumns:=True, _
AllowFormattingRows:=True, AllowInsertingColumns:=True, AllowInsertingRows _
:=True, AllowInsertingHyperlinks:=True, AllowDeletingColumns:=True, _
AllowDeletingRows:=True, AllowSorting:=True, AllowFiltering:=True, _
AllowUsingPivotTables:=True
For Each xWSh In Worksheets
If xWSh.Name <> "Main" Then
xWSh.Visible = xlSheetVeryHidden
End If
Next xWSh
ActiveWorkbook.Save
End Sub

3.次に、「Private Sub Workbook_Open()」スクリプトの末尾にカーソルを置き、「F5」キーを押してコードを実行します。すると表示されるプロンプトボックスに、そのユーザー用のシートを作成するためのユーザー名を入力してください(下記スクリーンショット参照)。

4.次に、「OK」ボタンをクリックし、表示されるプロンプトボックスでこのシートを保護するパスワードを入力してください(下記スクリーンショット参照)。

5.さらに「OK」ボタンをクリックすると、「ユーザー名」という名前の新しいシートが即座に作成されます。必要に応じて、そのユーザー向けのデータをすぐにご作成いただけます(下記スクリーンショット参照)。

6.他の必要なシートを1 つずつ作成するには、上記の手順3~5 を繰り返してください。
7.シートを作成したら、「ファイル」>「名前を付けて保存」をクリックして現在のブックを保存します。「名前を付けて保存」ダイアログボックスでファイル名を入力し、「保存形式を指定」ドロップダウンリストから「Excel マクロ有効ブック(*。xlsm)」を選択してください(下記スクリーンショット参照)。

8.次に、「保存」ボタンをクリックして、このファイルを保存してください。
9.その後、ブックを一度閉じて再度開き、「数式バー」上部に表示される[コンテンツの有効化]をクリックしてコードを有効にしてください。

10.これで、特定のユーザーが特定のシートを開く際に、ユーザー名とパスワードの入力を求めるプロンプトボックスが表示されます。
11.最後に、このブックを他のユーザーに送信する際は、必ずそのユーザーにユーザー名とパスワードをお知らせください。これにより、各ユーザーは自分のシートのみを開いて編集でき、他のワークシートを閲覧する権限は一切持ちません。
最高の Office 業務効率化ツール
| 🤖 | KUTOOLS AI アシスタント:次に基づいてデータ分析を革新します:インテリジェント実行 | コード生成| カスタム数式作成 | データ分析とチャート生成| 拡張機能呼び出し… |
| 人気の機能:検索・ハイライト、または重複をマーキング | 空白行を削除する | データを失うことなく列の結合またはセルを | 数式を使用しない四捨五入... | |
| スーパー LOOKUP:複数条件 VLookup | 複数値 VLookup | 複数シート間 VLookup | ファジーマッチ.... | |
| 高度なドロップダウンリスト:ドロップダウンリストをすばやく作成 | 連動型ドロップダウンリスト | 複数選択可能なドロップダウンリスト.... | |
| 列マネージャー:指定した数の列を追加|列の移動|非表示列の表示状態を切り替え|範囲および列の比較... | |
| 注目の機能:グリッドフォーカス | デザインビュー |強化された数式バー | ワークブックとシートマネージャー | リソースライブラリ(オートテキスト)| 日付ピッカー | ワークシートの統合 | 暗号化/セルの復号化 | リストからメール送信 | スーパーフィルター | 特殊フィルタ(太字のフォントを持つセルをフィルタリング/斜体/取り消し線。。。) 。。。 | |
| トップ15 ツールセット:12 テキストツール(テキストの追加、特定の文字を削除、...)| 50+チャートタイプ(ガントチャート、...)| 40+実用的関数(誕生日に基づいて年齢を計算します、...)| 19 挿入ツール(QR コードを挿入、パスから画像を挿入、...)| 12 変換ツール(単語に変換する、為替レートの変換、...)| 7 結合と分割ツール(高度な行のマージ、セルの分割、...)|さらに多数 |
Kutools for Excel でExcel スキルを強化し、これまでにない効率を体験しましょう。Kutools for Excel は、生産性を高め、時間を大幅に節約できる高度な機能を300 以上提供します。最も必要な機能を今すぐ入手するにはこちらをクリック。。。
Office Tab は Office にタブインターフェースをもたらし、作業を大幅に簡単にします
- Word、Excel、PowerPoint でタブを使った編集と閲覧を有効にします。Publisher、Access、Visio、Project でもご利用いただけます。
- 複数のドキュメントを、新しいウィンドウではなく、同じウィンドウ内の新しいタブで開いたり作成したりできます。
- 日々の生産性を50%も向上させ、毎日数百回ものマウスクリックを削減します!
すべてのKutools アドインが、たった1 つのインストーラーで完結。
Kutools for Officeスイートには、Excel ・Word ・Outlook ・PowerPoint 用のアドインと Office Tab Pro が含まれており、複数の Office アプリを横断して作業するチームに最適です。
- オールインワンスイート— Excel、Word、Outlook、PowerPoint 用アドイン+Office Tab Pro
- インストーラー1 つ、ライセンス1 つ— 数分でセットアップ可能(MSI 対応)
- 連携してさらにパワーアップ— Office アプリ全体で生産性が向上
- 30 日間のフル機能トライアル— 登録不要、クレジットカード不要
- 最高のお得感— 個別アドイン購入よりお得