• 締切済み

VBAで権限毎のシート表示は可能か?

VBAで、ID・パスワードを入力してログインするフォームを実装しました。 ここからさらに、入力したIDから所属部署・役職を参照して、「一定以上の役職者の場合、同じ部署内メンバーのシートを表示させる」といった機能を実現させたいです。 現在、ブック管理者であれば全シート、役職のない職員であれば個人のシートを表示できる段階まで行っていますが、どうしても上記の内容が実現できません。 どうかご教示いただけないでしょうか。

みんなの回答

  • kon555
  • ベストアンサー率51% (1845/3564)
回答No.2

本来はエクセルおよびVBAで対応するような内容ではないと思います。もしそのような権限がある、または上申できるならば、適切なソフトの選定や導入から行うべき案件です。 が、そうも言ってられないのが会社の業務というものですよね・・・同種の業務から編み出した一案ですがご査収下さい。 私がアカウント制御をエクセルで実装したケースでは、1ブック単体で成立させようという発想を捨てました。データ用のブックと、閲覧用のブックとを分離します。 データ用のブックには読み取り・書き込みパスワードを設定。これは管理者のみが把握していればいいので、サーバー上の適当な場所に適当な名前をつけて保存しておきます。 次に閲覧用のブックですが、コレはアカウントIDとパスワードの入力欄を設定しておき、確定ボタンなどでマクロを走らせます。 マクロは別のリストを参照し、設定されたIDとパスワードに応じて条件分岐。データ用のブックから権限に応じたシートをコピーする事で、アカウント別の閲覧制限を実現しました。 もし各個人シートが「閲覧」だけでいいならばこれで対応可能です。「編集」まで可能にする場合はもう一工夫必要ですが、正直条件付けや想定が複雑になりすぎるのでオススメはしません。 また言わずもがなではありますが、元々VBAはこうしたパスワード管理等に向いたものではありません。業務内であればそこまで気にする必要もないとおもいますが、仮に『自分と同スキルの人間でも突破できない』程度のパスワード管理は目指しましょう。

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

WEB記事には適当なものが見当たらなかった。 その中で http://mikisky40.web.fc2.com/kohza/kohza85/kohza85_01.html の「●「シート構成」を保護すれば万全になる」あたりを使えないかと思った次第です。 もともとエクセルに対する過大期待だと思う(何でもエクセルのタイプ)。1台パソコンで個人利用ではじまって、その面(権限やセキュリティ面)で十分発達させてないのだと思う。 == 会社では、上層部が見れるデータは、たとえエクセルで作ったとしても、権限管理などがしっかりした、(閲覧)ソフトにしか上げないようにしているはず。 同業や関係先のシステム担当に聞いてみたらどうかな? このコーナーは、読者が多いと思うかもしれないが、専門家はこんなコーナーを見ていたら、仕事にならないし、自社のことの開示になってはまずいだろうから、スーパー回答者が回答してくれると期待したり、頼らない方がよいと思うが。 ーー  VBAのシートの非表示などやってみたが、イベントでBeforActivateがなく、表示してしまってから、パスワードを入れるようなことになって、笑っちゃった。  またVBAはできる人が多く、VBAを使った仕組みは、見破られるので、適してない。 ーー ワークフローソフトなど使ってないのかな。適格者(指定)だけに回覧するなどできるのでは。  採用は別として、こういうのを検討するのは、システム部門として当たり前では。

関連するQ&A

専門家に質問してみよう