複数シートで構成されたブックがあります。
例えば、各シートの名前が以下の通りだったとします。
「りんご」「みかん」「だいこん」「ぶどう」「トマト」「いちご」「キャベツ」「かぼちゃ」
管理者は全シートが見えても良いのですが、
野菜管理者は、「だいこん」「トマト」「キャベツ」「かぼちゃ」のシートのみ
果物管理者は、「りんご」「みかん」「ぶどう」「いちご」のシートのみ
の閲覧制限を掛けたいのです。
「管理用」シートを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も見ています
-
風水の観点で選ぶ観葉植物とは?置き場所や上げたい運気ごとの注意点を紹介!
観葉植物で運気をアップするコツを、風水デザイン1級建築士の福島昌彦さんに伺った。
-
エクセル・マクロ シートの非表示でマクロのエラー
Visual Basic(VBA)
-
Excel VBA で、マクロを実行するためのパスワード設定方法
Excel(エクセル)
-
エクセルVBA InputBoxで入力欄を*****
Excel(エクセル)
-
-
4
ブック名、シート名を他のモジュールからも参照可能にする方法
Access(アクセス)
-
5
エクセルVBAで、条件に一致するセルへ移動
Excel(エクセル)
-
6
指定したシート名以外を非表示にするには?VBA
Excel(エクセル)
-
7
エクセルでメッセージボックスにパスワードを入力し、ブックの保護を解除するマクロを教えて下さい
Excel(エクセル)
-
8
Application.ScreenUpdating = Falseが効きません
Visual Basic(VBA)
-
9
マクロの「SaveAs」でエラーが出るのを解消したいです(再)
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
別のシートから値を取得するとき
-
Excelマクロのエラーを解決した...
-
ユーザーフォームに入力したデ...
-
特定の文字を含むシートだけマ...
-
excelのマクロで該当処理できな...
-
Worksheet_Changeの内容を標準...
-
エクセルVBA Ifでシート名が合...
-
実行時エラー'1004': WorkSheet...
-
VBAで指定シート以外の選択
-
シートが保護されている状態で...
-
【ExcelVBA】全シートのセルの...
-
エクセルのマクロでアクティブ...
-
【エクセル】オプションボタン...
-
Excel チェックボックスにチェ...
-
VBA 存在しないシートを選...
-
ExcelVBA:複数の特定のグラフ...
-
ExcelのVBAのマクロで他のシー...
-
【Excel VBA】Worksheets().Act...
-
IFステートの中にWithステート...
-
XL:BeforeDoubleClickが動かない
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
別のシートから値を取得するとき
-
ユーザーフォームに入力したデ...
-
【ExcelVBA】全シートのセルの...
-
同じ作業を複数のシートに実行...
-
Excelマクロのエラーを解決した...
-
excelのマクロで該当処理できな...
-
ExcelVBA シート名を複数セルか...
-
XL:BeforeDoubleClickが動かない
-
実行時エラー'1004': WorkSheet...
-
VBA 存在しないシートを選...
-
エクセルのマクロについて教え...
-
エクセルのマクロについて教え...
-
ブック名、シート名を他のモジ...
-
ExcelのVBAのマクロで他のシー...
-
【Excel VBA】Worksheets().Act...
-
エクセルのシート名変更で重複...
-
特定の文字を含むシートだけマ...
-
シートが保護されている状態で...
-
Excel マクロについての相談
-
VBA 検索して一致したセル...
おすすめ情報