• ベストアンサー

エクセル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

  • Excel VBA 有効化しても無効化になる

    知っている方ご教授願います。 会社のVBAでデータベース.CSVをVlookで管理表のExcelシートへインポートするVBAを使用しています。 (オープンフォームから、ファイルを選択し起動ボタンを押す) 先日、今まで通りに同じようにインポートしようとしたところ、 「コンテンツの有効化」で有効にする⇒マクロを起動⇒「マクロが無効化されています。」となり、フォームが起動しなくなりました。 インターネットでしらべましたが、 原因不明です。以下のことはやってみました。 1.セキュリティセンターの設定で、「デジタル署名されたマクロを除き、すべてのマクロを無効にする」にしてます。 2.Excelをすべて閉じ、PC再起動しました。 3.以前に使えていた時の、ExcelVBAのモジュールをコピーしてみました。 以上です。 わかる方教えていただけませんでしょうか。 尚、他のVBAが組んであるExcelファイルは動きますので、今使っているインポートの管理表だけが使用できない状況です。

  • オープンできないexcelファイルからVBAを取り出せるか?

    自宅でEXCEL2000でVBAを作成しました。FDで仕事場に持ち込むと EXCELオープン→マクロの有効→強制終了 になってしまいます。マクロを無効としても同じです。 このサイトの過去の質問で「開けないエクセルのデータを取り出すことができる」とありましたが、エクセルファイルに組み込んであるVBAのコードは取り出せることが可能なのでしょうか??よろしくお願いします。 ちなみにデータは外部参照やワードで開いて取り出すことができました。 OS:WIN95 B EXCEL:2000 (9.0.3821 SR-1)

  • Excel マクロ無効化

    Micorsoft Excelで、VBAで以下のように指定のExcelファイルのマクロを無効化したいのですが、やりかたを調べてもよくわかりません。できないのでしょうか?アドバイスいただけると幸いです。 具体的にやりたいこと (1)マクロ有効にしたExcelファイルのVBAから他のExcelファイルをマクロ無効で開く (2)マクロ有効にしたExcelファイルのVBAで、開いているExcelファイルのマクロを無効に設定する。(有効だったものを無効にする)

  • VBA使用 エクセルファイルのセキュリティ

    題名の通り、VBA使用で マクロセキュリティを(低)にして 社内のメッセンジャーで そのエクセルファイルをやりとりしていますが・・ 一応、各PC内でのセキュリティは社内では万全にしております。 そして、そのファイルは外には出す事はないとしても やっぱり、(低)にするとウイルス感染しちゃいますか?? 素人的質問で申し訳ありませんが アドバイスの程 よろしくお願い致します。

  • Excelマクロについて

    Excelマクロ(VBA)で複数のExcelファイルを一括で処理するプログラムを作っているのですが、処理対象のExcelファイルにはマクロが記述されていて、Excelを開く毎に記述のマクロが動いてしまいます。 対象のExcelファイルをオープンする時に、マクロを無効にして開くすることは可能でしょうか? 今現在、Excelファイル開く時に使ってる命令は、 Workbooks.Open Filenameです。

  • VBAでマクロ付きファイルを開く場合

    こんにちは。 VBA初心者です。 VBA(Workbooks.Open Filename)を使ってマクロ付エクセルファイルを開こうとしたのですが、単体で開く時と違い「マクロを有効にするか無効にするか?」ダイアログが表示されません。 マクロを有効にしてファイルを開きたいのですが、これはダイアログが表示されていないだけで自動的に「マクロを有効」となってファイルが開いているのでしょうか?そうではない場合このダイアログを表示させるにはどうしたら良いでしょうか? 判りつらい説明で申し訳ありませんが、教えて下さい。

  • エクセルVBA

    こんばんは! エクセルマクロ初心者です。 エクセルVBAについて教えてください! パス(?)を指定して、ファイルを開けてから実行する マクロを書きたいのですが、エラーになってしまいます。 Dim Filename as string (1)Workbooks.Open Filename:= "\D\MyDocument\●●.xls" (●●はファイル名) (2)Workbooks("●●").Activate (1)の部分は実行されて目的のファイルは開くのですが(2)でエラーになってしまいます。 どなたか教えてください! 以前までは、このマクロ実行できていたのですが、突然できなくなりました。 困ってます。

  • Excelのセキュリティ警告について

    いつもお世話になっております。 Excel2003についての質問です。 Excelのファイルを開く際に下記「セキュリティ警告」が出ます。  -----------------------------  "<ファイル名>"はマクロを含んでいます。  マクロにはウィルスが含まれている場合があります。通常、  マクロを無効にすると安全ですが、マクロが適正な場合、  機能が使えなくなります。  ----------------------------- しかし、「ツール」→「マクロ」→「マクロ」で表示される マクロの一覧にはマクロが1つもありません。 なぜ、このようなセキュリティ警告がでるのでしょうか? もしご存知のかたがいらっしゃいましたらアドバイスや参考情報 のご提供をよろしくお願い致します。

  • Excel VBAのゴミ?処理

    ExcelのVBAを修正、追加してそのまま保存するとファイルサイズが増えていきます。そのためにこのファイルを実行するとエラーが発生してしまうことがある。 私はこれを回避するために一度マクロモジュールを抜いてシートだけ保存し、モジュールのインポートを行い合成してファイルの管理をしています。これがマクロを変更する度におこなうのが手間である。何方か良い方法があれば教えてください。

  • VBAでエクセルからエクセルのファイルを開くには?

    D:\に db1.mdb Book1.xls があります。 db1.mdbのフォームのコマンドボタンをクリックして Book1.xlsを開きたいのですが VBAコードをご教授いただけますか? (マクロではなくVBAコードが知りたいです) エクセルからエクセルのファイルを開くなら Workbooks.Open ファイルのフルパス で出来ました。 ご回答よろしくお願いします。

専門家に質問してみよう