- ベストアンサー
エクセル2003でシートをパスワードで振り分ける方法
- エクセル2003を使用している場合、パスワードを使ってシートを振り分ける方法について質問があります。ブックを開く際にパスワードを求め、入力したパスワードに応じて表示されるシートが異なるようにしたいと考えています。具体的な例として、パスワード「AAA」を入力するとシート1だけが表示され、他のシートは見えないようにしたいとのことです。
- 要約文2
- 要約文3
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
>100%他力本願で申し訳ございませんが VBAではお望みの機能を完全に行う事は出来ませんが、それに近い事は出来ます。 しかし、基本的な部分の改変方法の知識やメンテの知識が必要になるでしょう。 また、VBAコードにパスワードを掛けて置かないとシートの表示が変更出来てしまいますし、パスワードも丸見えになります。 パスワードを忘れた場合は改変も出来なくなるので管理能力も必要です。 取りあえずは、Thisworkbook モジュールに下記のコードを入れておけば”もどき”の動作をします。 InputBoxではパスワードが丸見えなので、パスワード入力にはユーザーフォームでパスワード入力ボックスを作成して利用すると良いでしょう。 Private Sub Workbook_BeforeClose(Cancel As Boolean) Dim ws As Variant For Each ws In ThisWorkbook.Worksheets If ws.Name <> "main" Then ws.Visible = xlVeryHidden End If Next ThisWorkbook.Save End Sub Private Sub Workbook_Open() Dim Pass As String Pass = InputBox("パスワードを入れて下さい。", "Password") Select Case Pass Case "AAA" Worksheets("Sheet1").Visible = True Worksheets("Sheet2").Visible = True Case "BBB" Worksheets("Sheet1").Visible = True Worksheets("Sheet3").Visible = True Case Else MsgBox "閲覧権利がありません" End Select End Sub
お礼
ありがとうございます。 なんとなくイメージできました。