
複数シートで構成されたブックがあります。
例えば、各シートの名前が以下の通りだったとします。
「りんご」「みかん」「だいこん」「ぶどう」「トマト」「いちご」「キャベツ」「かぼちゃ」
管理者は全シートが見えても良いのですが、
野菜管理者は、「だいこん」「トマト」「キャベツ」「かぼちゃ」のシートのみ
果物管理者は、「りんご」「みかん」「ぶどう」「いちご」のシートのみ
の閲覧制限を掛けたいのです。
「管理用」シートを1つ用意して、
そこに3つのボタンを設置すれば良いと考えてます。
[野菜に制限]→押すと、野菜シートを表示、果物シートを非表示にする
[果物に制限]→押すと、果物シートを表示、野菜シートを非表示にする
[制限解除] →押すと、全てのシートを表示する
1つ目は
表示、非表示するのはこんな記述しか知らないんですけどこれでOKでしょうか?
Worksheets("りんご").Visible = True
Worksheets("だいこん").Visible = False
2つ目は
[野菜に制限][果物に制限][制限解除]の3つのボタンは管理者だけが押せるように、
クリック時にパスワード入力をさせたいのですが、実現できますでしょうか?
そんな超機密という程ではないので、ソースを見ればPasswordが分かってしまうくらいは構わないと思ってます。(そう見る人もいない環境(笑))
詳しい方、どうぞよろしくお願いいたします。
No.1ベストアンサー
- 回答日時:
1つ目は、それでOKです。
2つ目は
[野菜に制限][果物に制限][制限解除]の3つのボタンごとにマクロを作ると思いますので、そのマクロの最初で、inputboxでパスワードを入力させ、
それが不一致の場合、終了するようにすればよいかと。
Dim pass As String
pass = InputBox("パスワードを入力してください")
If pass <> "abcd" Then Exit Sub
(この場合、パスワードは"abcd"です)
Then Exit Sub の中にMSGBOXを入れたら「パスワードが間違ってます」等のメッセージも出せました。
ありがとうございます。
ここでのパスワードは「*****」の様にマスキングするのはできないでしょうか?
No.3
- 回答日時:
>ここでのパスワードは「*****」の様にマスキングするのはできないでしょうか?
ユーザーフォームにテキストボックスを貼り付けて、そこにパスワードを入力すれば、可能と思われます。下記URL参照。
https://h1r0-style.net/excelvba/howto-make-passw …
(私はこの検証作業はしていませんので参考まで。)
No.2
- 回答日時:
こんにちは
表示するシートの組み合わせは決まっているのでしょうから、「ユーザー設定のビュー」を利用して予め表示状態をセットしておくと便利だと思います。
それぞれの組み合わせに個別の名前を付けておけば、個々のシートの表示/非表示をいちいち制御する必要がなくなり、まとめて表示状態を再現できます。
VBAの記述例を挙げれば、
ActiveWorkbook.CustomViews("野菜").Show
のような1センテンスで、野菜関連のシートだけを表示することができます。
パスワード入力と実行方法はすでにNo1様が回答なさっているので省略。
上記だけだと、非表示になっているシートもユーザの操作で簡単に表示することができてしまうので、ブックの保護をかけておくのが確実ですが、マクロの実行時に解除・再保護の処理が必要になってきます。
(ご質問文からすると、ここまでする必要はないのかも知れませんけれど、
「パスワード入力」などもお考えのようなので、一応…)
今回作業しているブック内にはテーブルを使用しているため、
「ユーザー設定のビュー」が使えないそうです。グレーアウトでした。。。
でも知らなかった情報でしたので次回応用ができそうです。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセルのマクロで対象ごとにシート分けしてその内容をセルに書き込みたい 9 2022/08/24 13:23
- Visual Basic(VBA) 【ExcelVBA】動的にボタン、ボタン名を生成できますか? 7 2022/04/08 12:54
- Visual Basic(VBA) Excelのマクロコードについて教えてください。 1 2022/06/19 10:08
- Excel(エクセル) 【マクロ】マクロが保存されているエクセルとは、別のエクセルブックの全シートの非表示列を再表示したい 1 2022/12/24 20:48
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 2 2022/03/25 08:33
- Excel(エクセル) ワードのマクロについて教えてください。 1 2023/03/11 13:50
- Excel(エクセル) エクセルのマクロについて教えてください。 2 2023/01/25 11:42
- Visual Basic(VBA) ExcelのVBAコードについて教えてください。 2 2022/06/10 11:06
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/03/07 14:05
- Excel(エクセル) Excelのマクロについて教えてください。 4 2022/05/31 14:07
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excelマクロのエラーを解決した...
-
excelのマクロで該当処理できな...
-
XL:BeforeDoubleClickが動かない
-
【ExcelVBA】全シートのセルの...
-
特定の文字を含むシートだけマ...
-
Excel複数シートを別ブックに値...
-
実行時エラー'1004': WorkSheet...
-
実行時エラー1004「Select メソ...
-
ExcelのVBAのマクロで他のシー...
-
Excel チェックボックスにチェ...
-
excel マクロでシート名取得
-
VBAで同じシート名のコピー時は...
-
VBAをMACで使えるようにしたい&...
-
ExcelVBA:複数の特定のグラフ...
-
エクセルのシート名変更で重複...
-
vba findnext で検索し一致した...
-
【Excel VBA】Worksheets().Act...
-
VBA ユーザーフォーム上のチェ...
-
セルのコピーで「オブジェクト...
-
エクセルのマクロについて教え...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelマクロのエラーを解決した...
-
特定の文字を含むシートだけマ...
-
【ExcelVBA】全シートのセルの...
-
ユーザーフォームに入力したデ...
-
excelのマクロで該当処理できな...
-
実行時エラー'1004': WorkSheet...
-
ブック名、シート名を他のモジ...
-
実行時エラー1004「Select メソ...
-
VBA 存在しないシートを選...
-
ExcelVBA:複数の特定のグラフ...
-
エクセルのシート名変更で重複...
-
IFステートの中にWithステート...
-
VBA 検索して一致したセル...
-
ExcelのVBAのマクロで他のシー...
-
XL:BeforeDoubleClickが動かない
-
別のシートから値を取得するとき
-
エクセルVBA Ifでシート名が合...
-
エクセル・マクロ シートの非...
-
シートが保護されている状態で...
-
シート削除のマクロで「delete...
おすすめ情報