ツヨブログ

パティシエからエンジニアになったレアな人材スウィーツや料理、VBAやPHPやJAVA、ずっとやってるFXや株など、自身の知識や経験をアウトプットしていくブログ

プログラミング

【VBA】特定のセルにパスワードを入力するとexcelの隠しシートを表示させる方法

投稿日:

このシートは触られたくないが、開発者の自分は触る必要があるというシートをパスワードかけて非表示にしましょう

そんなソースコードになります

非表示設定のシートを特定のセルにパスワード入力でアクティブにする
Private Sub Worksheet_Change(ByVal Target As Range)

    Application.ScreenUpdating = False
    
    If Sheets("2").Cells(1, 1) = Sheets("pass").Cells(1, 1) Then
        Sheets("1").Unprotect Password:=Sheets("pass").Cells(2, 2)
        Sheets("2").Unprotect Password:=Sheets("pass").Cells(2, 2)
        Sheets("3").Unprotect Password:=Sheets("pass").Cells(2, 2)
        ActiveWorkbook.Unprotect Password:=Sheets("pass").Cells(2, 2)
            Sheets("pass").Visible = True
        Sheets("2").Cells(1, 1) = ""
    End If
End Sub

一度セルに情報を入力して、その情報を処理していくやり方で、開発時にはそのシートを使用して、リリースの際に非表示にする。

修正などの際に再度表示させて行うなどを想定しております。

ソースコードの説明

非表示設定のシートを表示させるvbaの説明
If Sheets("2").Cells(1, 1) = Sheets("pass").Cells(1, 1) Then

2枚目のシートのA1セルに入力した内容が、非表示設定のシート("pass")のA1セルの内容と一緒であれば...という条件文です

     Sheets("1").Unprotect Password:=Sheets("pass").Cells(2, 2)
        Sheets("2").Unprotect Password:=Sheets("pass").Cells(2, 2)
        Sheets("3").Unprotect Password:=Sheets("pass").Cells(2, 2)
        ActiveWorkbook.Unprotect Password:=Sheets("pass").Cells(2, 2)
            Sheets("pass").Visible = True

全てのシート(1~3)までのパスワードロックを解除した後、シート("pass")も同様に解除、そして非表示シートをアクティブへとなります

Sheets("2").Cells(1, 1) = ""

最後に入力したパスワードの内容を無しにすると、誰かに見られても、

パスワードの内容は分からないので安心ですね。

-プログラミング
-, ,

Copyright© ツヨブログ , 2021 All Rights Reserved Powered by STINGER.