• ベストアンサー

エクセルで非表示シートにパスワードを入力して表示したい

非表示にしておきたいシートがあります。(「ひみつシート」とします) ユーザーがシートを削除してもいいことから、ブックの保護はかけたく ないと思っています。 他のユーザーからは書式>シート>再表示で再表示されたくないものです。 できればVBAで、「入力表」A1にパスワードを入力して、 「ひみつシート」が表示されるようにしたいのですが・・・ ブック保護以外でそのようなことはできるでしょうか。 宜しくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.1

「ひみつシート」のシートモジュールで、シートのVisibleプロパティを、xlSheetVeryHiddenにするだけで、隠すことが、可能です。 あとはVBEのVBAPrpjectのプロパティでパスワードを設定し、VBE画面を表示されないようにします。

4k3s4r3
質問者

お礼

こんばんは。うまくできました!ありがとうございました。

その他の回答 (1)

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.2

操作で書式ーシートー再表示の各段階の操作において、システムが知らせてくれるイベントがあればそこでパスワードを要求し、以前どこかに保存したパスワードと一致しないと、はねつける、ようにすれば出来るのだが、そういう仕組みはVBAレベルでは無い(イベントのようなものが無い)と思いますので不可能でしょう。

関連するQ&A

  • エクセル2003 パスワードでシートを振り分ける方法

    エクセル2003をXPで使用しています。 ひとつのブックに全部で11のシートがあります。 ブックを開くときにパスワードを求め、パスワードに応じて 開くシートを振り分けたいと考えています。 たとえば・・・ パスワード「AAA」を入力するとシート1だけが見えて、他は見えない パスワード「BBB」を入力するとシート2だけが見えて、他は見えない ・ ・ ・ パスワード「KKK」を入力するとすべてのシートが見える こんな感じですが、過去ログを見る限りVBAならできそうだと思うのですが、自分なりの改造ができなく、困っています。 うまく説明できないのですが ☆データが入っているシート数は、11。(各シート名はsheet1~sheet11) ☆表紙がわりのシートを別に1つ作る。(シート名はmain) ☆パスはsheet1がAAA、sheet2がBBB、以下つづいてsheet1がKKKとする。 ☆ブックを開くとき、マクロを有効にしないと何も表示されない。 ☆マクロを有効にしてブックを開くと、mainだけが開き、ユーザーフォームが表示。(ユーザーフォームはパスワート入力とOKボタンのみ。) ☆パスワードを入力してOKボタンを押すと、パスワードに応じたシートだけが表示される。 100%他力本願で申し訳ございませんが、この条件を満たすマクロを組めるかた、よろしくお願いします。

  • VBAでのブック・シートの保護・解除について

    エクセル2010のVBAでのブック、シートの保護&解除の方法について教えて頂きたく、 質問させて頂きます。 消されては困るシートや数式がある関係で、ブックオープン時にVBAでブックとシートにそれぞれパスワードをかけて保護しています。 VBAではシートの削除、作成、コピーなどを行っているため、VBA実行時のみ、保護を解除させるようにしたいと思います。 ただ、対象のシート自体にも入力したい項目があるため、その箇所については保護を解除しておく必要があります。 そして、VBA実行後、再度、その箇所以外にパスワードで保護をかけ直します。 イメージとしては下記のような流れになります。 対象ブック:ブックA 対象シート:シート1 パスワード:1234(それぞれ) 常時保護を解除しておきたいセル:range("A6:H106") 1.(オープン時には、)ブック保護&特定のセル以外のシート保護 2.VBA実行時には全ての保護解除 3.VBA終了時に、1の状態に戻る どうぞよろしくお願い致します。

  • Excelのブック内のシート名を順番に表示させる

    類似の質問を探していろいろ試してみたのですがどうしてもうまくいかなくて・・・教えてください。 ブック内にシートが複数枚あるとします。 最初の1枚目のシートは一覧表となっておりそのシートのセルA1から順にA2、A3…と下に表が続いています。 セルA1には2枚目のシート名が自動的に入力される セルA2には3枚目のシート名が自動的に入力される というようにブック内にあるシート名を順番に セルに表示入力できる方法はありますか? ちなみにVBAはほとんど触ったことはありません。 よろしくお願いします。

  • Excelで行または列を非表示にしてパスワード入力で見させたい

    タイトルの通りなのですが、 単に非表示にするだけであれば行や列を選んで非表示にするだけで 見えなくなるのですが、非表示にした行や列を挟む形でコピペすると 内容が見えてしまったりするのでパスワードを入力しなければ 絶対に見えないようにしたいと思っています。 また、シート単位であってもたとえばSheet2を非表示にして ブックの保護をかけたとしてもSheet1において=Sheet2!A1 などとするとSheet2のセルの値が見えてしまいます。 できればマクロなどを使わず実装したいのですが、何か良い案が ありましたらお教え願います。 ちなみにファイルの作成はExcel2003で行いますが、 Excel2007で開かれることも想定しています。 もちろんExcelで何らかの保護をかけた状態で OpenOfficeなどで開くと見えてしまうといったものもNGです。

  • Excel VBAでは可でユーザーは入力不可のセル

    C5のセルはユーザーが入力できて、 C5セルに入力された値に応じてVBAで C7セルに処理した値を表示させたいのですが、 C7のセルはユーザーは入力(選択)できないようにしたいのです。 具体的には、 C5セルの書式設定の保護タブのロックを解除して ホームタブのセルグループの書式▼でシートの保護を選択して 表示される「シートの保護」のダイアログで デフォルトのままOKボタンをクリックすると C5セルのみ入力できて C5セル以外は入力できなくなります。 ユーザーにはこの状態にしておきたいのですが、 VBAでC7セルに入力できるようにする方法はないでしょうか。 (Windos7, Excel2010)

  • エクセル上のシートの再表示ができない!!

    こんにちは。 早急に、教えてください。 同じブック内にあるsheet1を参照している、 sheet2があります。そのsheet2のセルには、 =sheet1!A1・・・と表示されるのに、 sheet1が見つかりません。 書式-シート-再表示でも、「再表示」 がアクティブになりません。 sheet1はどこに行ってしまったのでしょうか。 よろしくお願いいたします。

  • Excelで、あるシートだけ非表示にしたいのですが?

    Excelで、入力用シートと印刷用シートの2枚を作って、入力用はデータや計算データを入力して、それを印刷用シートに結果だけ飛ばしています。たまに、お客さんにExclデータで提出して下さいといわれますが、入力シートは見せたくありません。 最近、VBAを勉強し始めて、非表示にする方法は見つけましたが、(使用しているのは、ワークシートの「visibie=false」です。)更にブックの保護をかけてマクロを変更出来なくしています。が、これで確実に見れなくなっているのかが良く分かりません。こんな方法で良いのか、もう少し効率の良い方法があるのか、御手数ですが教えて頂きたいのですが。

  • Excelセル入力でパスワード入力のようにできますか?

    Excelセル入力でパスワード入力のようにできますか? Excel2003です。 セルに入力する際にパスワード入力のように「*」表示にすることはできるでしょうか? 例えば、"abcde"と入力して、セルの表示は"*****"となるようにする方法です。 セルの書式設定でもVBAでもどちらでもできる方法をお教えいただけないでしょうか。 よろしくお願いします。

  • エクセル2007の、シートの保護について

    エクセル2007の、シートの保護について シートの保護の際、「このシートのすべてのユーザーに許可する操作」にて ・ロックされていないセルの選択 ・セルの書式設定 にチェックを入れたのですが、ブックを保存して閉じて、再度開くと ・セルの書式設定 のみチェックの入っていない状態で開かれます。 シートは保護された状態なため、いちいち保護を解除してチェックを入れ直し、 再度保護するのが面倒なのですが、ブックを閉じても 「このシートのすべてのユーザーに許可する操作」の設定が変わらない方法はあるのでしょうか? どうぞ、よろしくおねがいいたします。

  • ExcelでVBAにおけるシートの保護に関して・・・

    ユーザーフォームで入力した値がシートのセルに入力 されるというものを作っています。 そこで、シートの列挿入及び列削除を禁止しておきたい のですが、そのままシートを保護してしまうとユーザー フォームが開かなくなるので、VBAにてユーザーフォーム が開く前に保護を解除し、閉じるときに再び保護をかける ようにしました。 ただ、この方法だと、シート保護の項目全て(初期設定) に対して保護されてしまうため、例えば行挿入や行削除、 あるいはオートフィルタや並べ替えといったことまでが 出来なくなってしまいます。(手動で保護を解除すれば できるのですが、一々解除しなければならないのは面倒 なので何とか避けたいのです。) 禁止したいのは、列削除及び列挿入のみなのですが、 他によい方法はないでしょうか。

専門家に質問してみよう