vbaで複数のExcelシートのパスワードを設定する必要があります。私は、異なる会社のセクションのシートを持つ優れた文書を持っています。私はそれが欲しいと私は、開始ページだけが表示されている文書をExcelで開き、それが正しい場合は、そのセクションの2つのシートを開くためにパスワードを入力します。アイデアは: Open Excelドキュメントを開くと、開始ページが表示されます。 6つのセクションの1つにパスワードを入力してください セクション1またはセクション2 ...またはセクション4のパスワードが正しい場合は、パスワードを入力したセクションに属する2つのシートを表示してください。 セクション5またはセクション6のパスワードが正しい場合は、すべてのシートを表示します。私は他のシートをクリックし、それがパスワード(vbaで複数のシートのパスワードを設定する方法は?
`If Application.ActiveSheet.Name = xSheetName Then
Application.EnableEvents = False
Application.ActiveSheet.Visible = False`
Iのbecouse尋ねるシート1に戻ってクリックしたときに、これと
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Dim xSheetName As String
xSheetName = "Sheet1"
If Application.ActiveSheet.Name = xSheetName Then
Application.EnableEvents = False
Application.ActiveSheet.Visible = False
xTitleId = "KutoolsforExcel"
response = Application.InputBox("Password", xTitleId, "", Type:=2)
If response = "123456" Then
Application.Sheets(xSheetName).Visible = True
Application.Sheets(xSheetName).Select
End If
End If
Application.Sheets(xSheetName).Visible = True
Application.EnableEvents = True
End Sub
問題:私はこのコードの一枚をロックするために最初に試してみました仮定し、私はそれを避けるために方法がわからない その後、私はこのような複数のシートをロックしようとしたとき:。
Dim xSheetName1 as String
Dim xSheetName3 as String
xSheetName1 = "Sheet1"
xSheetName3 = "Sheet3"
If Application.ActiveSheet.Name = xSheetName1 Then
Application.EnableEvents = False
Application.ActiveSheet.Visible = False
xTitleId = "KutoolsforExcel"
response = Application.InputBox("Password", xTitleId, "", Type:=2)
If response = "123" Then
Application.Sheets(xSheetName1).Visible = True
Application.Sheets(2).Visible = True
Application.Sheets(xSheetName1).Select
If Application.Sheets(1).Visible = True Then
Application.EnableEvents = False
Aplication.Sheets(xSheetName1).Visible = False
Exit Sub
End If
End If
End If
If Application.ActiveSheet.Name = xSheetName3 Then
Application.EnableEvents = False
Application.ActiveSheet.Visible = False
xTitleId = "KutoolsforExcel"
response = Application.InputBox("Password", xTitleId, "", Type:=2)
If response = "111" Then
Application.Sheets(xSheetName3).Visible = True
Application.Sheets(5).Visible = True
Application.Sheets(5).Select
If Application.Sheets(1).Visible = True Then ' tried to get rid of asking
for password every time
Application.EnableEvents = False
' Aplication.Sheets(xSheetName1).Visible = False
Exit Sub
End If
End If
End If
Application.Sheets(xSheetName1).Visible = True
Application.Sheets(xSheetName3).Visible = True
Application.EnableEvents = True
End Sub
その後、私はすべてロックされshee任意の正しいパスワードを入力したときtsはロック解除されます。 時々私はシート(インデックス)を使用しました。なぜなら、いくつかのシート名でエラー9が問題になるからです:)))
[スタート]ページのボタンを使ってパスワードの要求を開始してみませんか? Sheet_Activateイベントを使用することは適切なアプローチのようではありません。 –
(パスワードの最終目標はわかりませんが、Excelのパスワードは簡単にバイパスできます(https://www.google.com/search?q=bypass) + Excel +パスワード)を入力してください。あなたのユーザーが新しく/ Excelに精通していない場合はおそらくうまくいくでしょうが、もし誰かがそこに入ることを望むなら、おそらくそれは可能です。)また、パスワードを技術的に追加するのではなく、ユーザーが入力した文字列に基づいてシートを表示するだけです。 – BruceWayne