【本日のミッション】
Excel 他の人に見られたくないシートをVBAで表示できないようにして、VBA画面を見られないようにパスワードを設定せよ。
ミッションの概要
他の人に見られたくないシートをVBAで表示できないようにして、VBA画面を見られないようにパスワードを設定せよ、というのが今回のミッションです。
個人情報の入ったシート、マスタデータの入ったシート等、他の人に見られたくないワークシートをVBAで非表示にして、ユーザーが手作業で再表示できないようにします。
今回は、<マスタ非表示><マスタ表示>ボタンを用いて、マスタシートの表示の切り替えを行います。マスタシート表示時には、パスワードの入力を求めるようにします。
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
<マスタ非表示>ボタンで、マスタシートが非表示になるようにします。
<マスタ表示>ボタンでマスタシートを表示しますが、パスワードを入力しないと再表示できないようにします。
プロシージャとボタンの設定
Sub マスタシート非表示()
Worksheets("マスタ").Visible = xlSheetVeryHidden
End Sub
Sub マスタシート表示()
Dim res As String
res = InputBox("マスタシートを表示するパスワードを入力してください。")
If res = "pass" Then ’←自分で設定したパスワード
Worksheets("マスタ").Visible = xlSheetVisible
Else
MsgBox "パスワードが違います。"
End If
End Sub
任意のシートに、<マスタ非表示><マスタ表示>オブジェクトを作り、ボタンとして使用します。
<マスタ非表示>オブジェクトを右クリックし、[マクロの登録]をクリックします。
マクロの登録画面にて、「マスタシート非表示」マクロを選択して、<OK>ボタンをクリックします。
<マスタ表示>ボタンには「マスタシート表示」マクロを設定します。
<マスタ非表示>ボタンをクリックすると、マスタシートが非表示になります。手動でシートを表示しようとしても、「再表示」の表示がグレーになっていて再表示することはできません。
<マスタ表示>ボタンをクリックすると、パスワード入力画面が表示されます。
正しいパスワード「pass」を入力すると、マスタシートは表示されます。
間違ったパスワードを入力すると、下記メッセージが表示されます。
Visibleプロパティ
定数 | 説明 |
True | シートを表示します。 |
False | シートを非表示にします。 ユーザー側でシートの再表示が可能です。 |
Visibleプロパティには、下記組み込み定数もあります。今回はこちらの定数を利用しています。
定数 | 説明 |
xlSheetVisible | シートを表示します。 |
xlSheetHidden | シートを非表示にします。 ユーザー側でシートの再表示が可能です。 |
xlSheetVeryHidden | シートを非表示にします。 ユーザー側でシートの再表示不可です。 |
定数「xlSheetVeryHidden」を利用すると、ユーザー側での再表示ができなくなります。
Worksheets("マスタ").Visible = xlSheetVeryHidden
この設定は、VBE画面のシートのVisibleプロパティでも可能です。
VBAにパスワードを設定する
VBAで設定したコードをユーザーに見られないようにするために、VBAにパスワードを設定します。
Visual Basic Editorを開き、[ツール]-[VBProjectのプロパティ]をクリックします。
VBAProjectプロパティで、[保護]タブをクリックします。
「プロジェクトを表示用にロックする」にチェックを入れ、「パスワード」「パスワードの確認入力」を入力し、<OK>をクリックします。今回はパスワードを「pass」と設定しています。
一度、Excelを保存し閉じて、再び開きます。
Visual Basic Editor画面でマクロを開けようとすると、パスワード入力画面が表示されます。ここに先ほど設定したパスワードを入力しないと、マクロの中身を見ることはできません。
参照
「数字が文字列として保存されています。」を一括で数字に変換
データが増減しても参照先を変更しない名前の管理(Excel)
連動するドロップダウンリストを名前の管理・入力規制・OFFSET・INDIRECTを使って「リストが表示されない」を解決(Excel)
Excel 複数セル内の改行(Alt+Enter)を一括で解除する方法
Excel関数を使って 縦の表に連動した(リンクした)横の表を一括で作成せよ
ワイルドカードとは。使い方いろいろ。(Excel)
Excelの改ページの点線を消す方法
Excelの背景にある薄グレーの枠線(罫線)を消す(非表示)方法
非表示になってしまった列を表示させる方法
ファイルを開くと空の画面も同時に開くのを解決(Excel)
図 画像 グラフ ボタン などのオブジェクトが消えてしまった時の表示方法(Excel)
大量の画像やグラフ等のオブジェクトで画面表示が遅いのを解決(Excel)
保護されたシートに対して、このコマンドは使用できません。テーマが変えられない現象を解決(Excel)
離れた複数列をまとめて列番号(数字)で選択する方法(Excel VBA)
Excel VBA で選択した複数のセルにデータ・数式を(Ctrl+Enter のように)一気に入力する方法
エクセル 塗りつぶしで指定した色のカラーインデックスを取得する(Excel VBA)
エクセル セル入力した文字色からカラーインデックスを取得する(Excel VBA)
エクセル 他の人に見られたくないシートを再表示できないようにしてVBAにパスワードを設定する(Excel VBA)