Excelのセキュリティはあなたの仕事にとってかなり重要です。 この記事では、ExcelVBAによってユーザーごとに異なる特権を設定する方法を紹介します。
前回の記事で Excelブックを保護するためのログインウィンドウを作成する方法、Excelブックのログインウィンドウを作成する方法を紹介しました。 ただし、複数のユーザーがドキュメントにアクセスする必要がある場合は、追加の設定を行う必要があります。 さらに、それらのユーザーがファイルに誤った変更を加えないことを保証する必要があります。 次に、以下の手順に従って、このタスクを完了する方法を確認してください。
異なる特権を設定する
ここで、XNUMX人の営業担当者がこのファイルを変更する必要があるとします。 名前とパスワードは、以下の画像のように設定されています。
そして、各人は特定のワークシートを変更する必要があります。
- キーボードのショートカットキー「Alt + F11」を押して、VisualBasicエディターを開きます。
- 次に、新しいユーザーフォームをエディターに挿入します。

- この手順では、XNUMXつのラベル、XNUMXつのテキストボックス、およびXNUMXつのボタンをユーザーフォームに挿入します。
- 次に、ユーザーフォームのキャプションと、手順3で挿入した要素を変更します。以下の画像を参照することもできます。
- その後、XNUMX番目のテキストボックスの「PasswordChar」を「*」に変更します。
- その後、ユーザーフォームをダブルクリックします。
- 次に、次のコードをモジュールに入力します。
Private Sub CommandButton1_Click() Dim objTargetWorksheet As Worksheet If (TextBox1.Value = "John" And TextBox2.Value = "234") _ Or (TextBox1.Value = "Amy" And TextBox2.Value = "345") _ Or (TextBox1.Value = "Paul" And TextBox2.Value = "456") Then Me.Hide: Application.Visible = True For Each objTargetWorksheet In ActiveWorkbook.Worksheets If objTargetWorksheet.Name = TextBox1.Value Then objTargetWorksheet.Unprotect Password:=12345 Else objTargetWorksheet.Protect Password:=12345, DrawingObjects:=True, Contents:=True, Scenarios:=True End If Next Else MsgBox "Please input the right user name and the right password" End If End Sub Private Sub CommandButton2_Click() ThisWorkbook.Application.Quit End Sub Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer) ThisWorkbook.Application.Quit End Sub
コードでは、他のワークシートを保護します。 また、ユーザーは対応するワークシートのみを変更できます。 必要に応じてパスワードを変更することもできます。
- その後、VBAプロジェクトの「ThisWorkbook」をダブルクリックします。
- 次に、次のコードを入力します。
Private Sub Workbook_Open() Application.Visible = False: UserForm1.Show End Sub
- ユーザーがVBAコードを変更できないようにするには、VBAプロジェクトのパスワードを設定する必要があります。 前回の記事で ExcelワークシートでVBAコードをパスワードで保護する方法、メソッドを導入しました。 特別なパスワードを設定することもできます。
- 最後に、このExcelファイルを保存します。
- 次にファイルを開いたとき、ユーザーフォームは表示されません。 ファイル内の「コンテンツを有効にする」ボタンをクリックする必要があります。
- そして、「ログイン」ウィンドウが表示されます。 XNUMXつのテキストボックスに名前とパスワードを入力します。
- その後、ウィンドウの「ログイン」ボタンをクリックします。
現時点では、ジョンは自分のワークシートのみを変更できます。 彼は他のワークシートやVBAコードを変更することはできません。 さらに、XNUMX人の営業担当者を除いて、パスワードなしでこのファイルを開くことはできません。 次回そのような要件が発生したときに、ワークブックにそのようなログインウィンドウを設定することもできます。
Excelの破損の問題を認識する
Excelは、さまざまな要因の結果として破損することがあります。ファイルの修復を開始する前に、問題とデータ障害の原因を特定する必要があります。さらに、データ復旧について何も知らない場合は、 破損したExcelxlsxを修復する サードパーティ製のツールを使用することで、この問題を解決できます。最先端のアルゴリズムを搭載したこのツールは、Excelのほぼすべてのエラーに対応可能です。
著者紹介:
Anna Maは、のデータ復旧の専門家です。 DataNumen、Inc。は、以下を含むデータ復旧技術の世界的リーダーです。 破損したdocxを修復します と見通し修理ソフトウェア製品。 詳細については、次のWebサイトをご覧ください。 WWW。datanumen.com



