• ベストアンサー

エクセルVBAについてですが・・・

エクセルVBAの初学者ですがよろしくお願いします。 エクセルマクロのファイルを開くとき「マクロにウィルスが含まれている可能性があります。マクロを有効にしますか?無効にしますか?」とファイルを開くたびにたずねられますが、セキュリティーを低くすることでこの質問をされないですむということは、聞いたのですが、 openイベント等を使いこの質問を回避することは、できないのでしょうか? 知っている方がいたらアドバイスをお願いします。

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

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.3

こんにちは。 私は、Office カテゴリ専門に書いている者として、言わせていただきます。 他の方に反論を言うつもりは毛頭ありませんが、Office のセキュリティは、単にマクロを拒絶するためだけで、ウィルスを除去するとか防ぐとかいう意味ではありません。 マクロ嫌いな人のための、マクロを読み込まないオプションにしか過ぎません。「中」にしておいて、まあ、いいだろうって開けたら、それで最後だし、「高」にしてあっても、通す方法はあるからです。Excelなどで、多少でも、ウィルスがどういう動きをし、どういうように働くかを知っていたら、そんな一般的なセキュリティは何の意味もないのが分かります。ですから、そのセキュリティのコンセプトには矛盾があります。(ただし、MSの責任とは言いません。それは、試作モニターやユーザーの反応に対する彼らのやむにやまれぬ折衷案だからです。) ですから、アプリケーションとしてのセキュリティは、単に、アンチウィルスソフトのAntiVirus API を認識するだけです。アンチウィルス以外に、防御の役目をするものはありません。しかし、Office VBAの素人マクロには、ウィルスなみに、間違ったコードで、ハングやシステムエラーを起こすものなどありますから、単に、増殖性がなければ、もう、受け入れるしかないということになってしまいます。だから、プロレベルの人が嫌うのも当然といえば当然です。 もし、ウィルスに対するセキュリティでしたら、アンチウィルスだけではなくて本当は足りません。誰が、どういう目的で作ったものか、という明示的なクレジットが必要なのです。それ以上のセキュリティというは、Office では、現実には不可能なのです。 個人用マクロブックに登録したものは、通常の設定なら素通りします。 また、外部から作った、オートメーション・オブジェクトには、そうしたセキュリティは存在していません。 他に、デジタル署名という方法もあります。これは何も役に立たないという否定的な人がいますが、その方は、あまり詳しくないか、正しく出来なかったからだと思います。この場合は、「中」なら通ります。「上」で通すためには、VBA用の証明書を購入しなければなりませんが、最も安くても、4万円/年は越えたはずです。 他も方法はありますが、掲示板では公開は出来ません。 なお、OkWaveの猛者として有名な方が、VBAからのコードを書いていました。それは、 AutomationSecurity プロパティを使う方法ですが、内容的は間違いです。それは、変更できません。

kenta11
質問者

お礼

回答ありがとうございます。 私のレベルでは、理解できない内容も多かったですが、とても勉強になりました。 このたびは、ありがとうございました。

その他の回答 (2)

noname#221368
noname#221368
回答No.2

 #1さんの回答を十分考慮の上で読んで下さい。  #1さんの回答からわかる通り、VBAではできません。VBAではなくVBなどから外部起動する場合は、セキュリティー警告を抑制する事は可能です。

kenta11
質問者

お礼

VBAでは、できないみたいですね。 回答ありがとうございました。

  • hana-hana3
  • ベストアンサー率31% (4940/15541)
回答No.1

マクロでセキュリティレベルの変更が出来てしまうなら、セキュリティ設定の意味がありません。 マクロウィルスを封じるための一手段として設定があるのですからね。 それが出来たら、ウィルスのやりたい放題になってしまいます。

kenta11
質問者

お礼

そうですね。 セキュリティが簡単に解除で切るなら意味ないですね。。。 回答ありがとうございました。

関連するQ&A