メインコンテンツへスキップ

Excelでユーザーが個々のワークシートを保護するためにパスワードを設定する方法は?

著者:シャオヤン 最終更新日:2022年09月23日

Excel では、シートごとに異なるパスワードを設定できます。これは、あるユーザーが XNUMX つのパスワードを使用して XNUMX つのワークシートを変更し、別のユーザーが別のパスワードを使用して別のワークシートを変更できることを意味します。 しかし、場合によっては、各ユーザーが自分のシートを表示してアクセスできるようにしたいだけです。 これはExcelで解決できますか?


各ワークシートを個別に保護し、ユーザーによるワークシートへのアクセスを制限するには、次の VBA コードを適用してください。

1. 新しいワークブックを開き、「メイン」という名前の新しいシートを作成します。スクリーンショットを参照してください。

2。 次に、 Altキー+ F11 キーを押して アプリケーション向け Microsoft Visual Basic ウィンドウ、ダブルクリック このワークブック 左から プロジェクト-VBAProject ウィンドウを開いて空白のコード モジュールを開き、次の 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. 次に、カーソルを末尾に置きます。 プライベートサブWorkbook_Open() スクリプトを押して、 F5 このコードを実行するためのキー。 次に、ポップアウトされたプロンプト ボックスに、このユーザーのシートを作成するユーザー名を入力します。スクリーンショットを参照してください。

4。 次に、をクリックします OK ボタンをクリックし、次のプロンプト ボックスに、このシートを保護するためのパスワードを入力します。スクリーンショットを参照してください。

5。 クリックしてください OK ボタンをクリックすると、ユーザー名を付けた新しいシートが一度に作成され、必要に応じてそのユーザーのデータを作成できます。 スクリーンショットを参照してください:

6. 上記の手順 3 ~手順 5 を繰り返して、使用する他のシートを XNUMX つずつ作成します。

7. シートを作成したら、現在のワークブックを保存します。 File > 名前を付けて保存。、 の中に 名前を付けて保存 ダイアログ ボックスでファイル名を指定し、 Excelマクロ対応ワークブック(* .xlsm) 形式から タイプとして保存 ドロップダウンリスト、スクリーンショットを参照してください:

8. 次に、[保存] ボタンをクリックして、このファイルを保存します。

9. 次に、ワークブックを閉じて再度開き、クリックします。 コンテンツを有効にする 数式バーの上部にあるコードを有効にするには、スクリーンショットを参照してください。

10. これで、特定のユーザーが特定のシートを開くためにユーザー名とパスワードを入力するように促すプロンプト ボックスが表示されます。

11. 最後に、このワークブックを他のユーザーに送信するときは、ユーザー名とパスワードをユーザーに送信する必要があります。 自分のシートを開いて編集するだけで、他のワークシートを表示する権限はありません。


  • スーパーフォーミュラバー (複数行のテキストと数式を簡単に編集できます); 読書レイアウト (多数のセルを簡単に読み取って編集する); フィルター範囲に貼り付け...
  • セル/行/列をマージする およびデータの保持。 分割セルコンテンツ; 重複する行と合計/平均を組み合わせる...重複セルを防止します。 範囲を比較する...
  • [複製]または[一意]を選択します 行; 空白行を選択 (すべてのセルは空です); スーパーファインドとファジーファインド 多くのワークブックで; ランダム選択...
  • 正確なコピー 数式参照を変更せずに複数のセル。 参照の自動作成 複数のシートに; 箇条書きを挿入、チェックボックスなど...
  • お気に入りの数式をすばやく挿入する、範囲、チャート、写真; セルを暗号化する パスワード付き。 メーリングリストを作成する そしてメールを送る...
  • テキストを抽出、テキストの追加、位置による削除、 スペースを削除する; ページング小計の作成と印刷。 セルの内容とコメントを変換する...
  • スーパーフィルター (フィルタースキームを保存して他のシートに適用します); 高度な並べ替え 月/週/日、頻度など。 特殊フィルター 太字、斜体...
  • ワークブックとワークシートを組み合わせる; キー列に基づいてテーブルをマージします。 データを複数のシートに分割; xls、xlsx、PDFをバッチ変換...
  • ピボットテーブルのグループ化 週番号、曜日など... ロック解除された、ロックされたセルを表示する さまざまな色で; 式/名前を持つセルを強調表示する...
kteタブ201905
  • Word、Excel、PowerPointでタブ付きの編集と読み取りを有効にする、パブリッシャー、アクセス、Visioおよびプロジェクト。
  • 新しいウィンドウではなく、同じウィンドウの新しいタブで複数のドキュメントを開いて作成します。
  • 生産性を 50% 向上させ、毎日何百回もマウス クリックを減らすことができます!
officetab下部
Comments (1)
No ratings yet. Be the first to rate!
This comment was minimized by the moderator on the site
How would you then allow for an admin user to see all of those password protected sheets?
There are no comments posted here yet
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations