プロが教える店舗&オフィスのセキュリティ対策術

いつもお世話になっております。
できるかどうかさえ全く?なのですが、
マクロを有効にしないとエクセルブックを開けない方法ってございますか?
このようなことをしたい理由は、限られたユーザーのみ開けるようにしたいのですが、パスワードを設定してしまうと他のマクロでこのブックを参照のため頻繁に開くため、そのたびにパスワードを入力しなくてはいけなくなり手間?なので、下記のようにIDを取り、登録されていないユーザーはCloseしてしまうマクロを組もうと思っております。
(もしかしたら、発想自体が間違いかもしれませんので、その場合はご指摘を。)
'ユーザ情報
Type UserInfo
windowsId As String
End Type

'共通変数宣言
Global gUserInfoObj As UserInfo

Sub Auto_Open()
On Error Resume Next
gUserInfoObj.windowsId = GetMyUserName()
・・・・・・
End Sub

よろしくお願いいたします。

A 回答 (2件)

私の知るかぎりでは、パスワード以外は無いと思います


マクロからパスワードの入力もできるので
最初のみパスワードの入力をしてもらい、それを変数に取り込み
2回目からの参照は変数を使用しBOOKを開けばよいのでは

Workbooks.Open Filename:="aaa.XLS", Password:="abc", WriteResPassword:="efg"
    • good
    • 0
この回答へのお礼

hige_082さん、
お返事ありがとうございました。
これ応用させていただきます。
今後ともよろしくお願いいたします。

お礼日時:2009/03/16 16:40

こんにちは。



>マクロを有効にしないとエクセルブックを開けない方法ってございますか?

これに関しては、こうした掲示板では書くことはできません。(自主的に)
理由は、マクロウィルスに関係するからです。しかし、ヒントとしては、通常、マクロ入りブックというものは、ユーザーフォルダに入れたものを対象として、チェックが働くことで、他のフォルダーの \Application Data\Microsoft\Excel\XLStart や Program Files の \Microsoft Office\ に対しては、ツール--マクロ--セキュリティ-信頼する発行元で、組み込み済みのアドインやテンプレートを「信頼する」という設定がされているはずです。それらは、マクロが動きます。

もうひとつの方法としては、Resistry のモニタープログラムを置いて、そのセキュリティの変化によって、該当 Resistry の位置を知ることが可能です。総じていえることは、大したセキュリティではないので、とても、こういう設定では、ウィルス自体を防ぐことは不可能だということが同時にわかるはずです。

他の方法としては、ブックから、別のブックをマクロで開ける方法を取るということが考えられます。マクロが設定されていないなら、別のブックを開けることはできません。しかし、これは、WScript 辺りでも、可能なことです。
    • good
    • 0
この回答へのお礼

Wendy02さん、
いつもありがとうございます。
これはちょっと私にはハードルが高いです。。。

>別のブックをマクロで開ける方法
これは実は試してみたんですが、マクロで開かれたBook名で検索をかけたり、名前を付けて保存とかされてしまうと、Directoryがばれてしまって(もしかして私は上記のことを勘違いしてますか?)。

もう少し勉強します。
またよろしくお願いいたします。

お礼日時:2009/03/16 16:16

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!