重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

Excel2000でマクロ入りのワークシートを作り、知り合い複数に配ったところ、Excel2003を持っている人から「マクロが動かない」と言われました。

原因を探ってみると、2003でセキュリティレベルが「高」になっているためでした。
私も2003を持っているのでそちらで確認し、セキュリティレベルを「中」にすれば使えることを伝えたのですが、何人かは自分のパソコンではないのでセキュリティレベルを変えられない、他の人はセキュリティレベルを変えるのは怖くて出来ない、と言います。

Excel2000の頃は出来ていたのに、2003になってこういう問題が出てきて困っています。

デジタル署名をつければいいということはわかったのですが、個人でデジタル署名をつけるとなると、やはりお金を払って証明書を発行してもらうしかないのでしょうか?
お金をもらって配布しているわけではないので、そういう出費をすることはできません。

今後、他のメンバーにも配る予定なので、このような状態だとどうしようもなくなってしまいます。

なにか解決方法はないのでしょうか。
よろしくおねがいします。

A 回答 (3件)

こんにちは。



以前、以下でも書いたのですが、VBAを書く者にとっては大問題です。証明書を取れないアマチュアは、ボイコットということですからね。

以下など、いつも、この件に関しては、あれこれと書いております。
エクセルマクロのデジタル認証について
http://oshiete1.goo.ne.jp/kotaeru.php3?qid=1770814

根本的には、個々のユーザーの誤解と、その元凶には「MSにモノを言うユーザー」によるものらしいということが分かりました。要するに、素人VBAプログラマーの作るものなどは信頼が置けないのだから、ブロックアウトしましょう、というのが発端のようですね。(そのオプションは、使いたい人とそうでない人の間の折衷案のようですが。)

誤解というのは、それ自体がウィルスのチェックをしているわけではないからです。単に、マクロが入っています、とメッセージが出るのか、マクロを使いたくない人のオプションにしか過ぎないわけです。この周辺に、MS-Office 指定のアンチウィルスAPI を持つソフトウェアというのが存在します。それを使っている人は、「低」でも良いということなのですが、これは、海外の大手のソフトメーカーに限ります。たとえば、シマンテック、トレンドマイクロ等。

ですから、本来、「高」のままの人は、その意味自体を考えてもらい、出来れば、配布はやめたほうがよいと思います。それを越えてまで使わせるという理由は、どのような事情があれ、私はないと思います。ウィルスがどのようなものかも知らなければ、セキュリティの意味さえしらない、ただ、既存の機能があればよいというだけとしかいいようがないのです。

Excelの2000以上で、そのセキュリティを変更する方法を平気で公開する人がいますが、それは、いくら、ウィルスではないにしても、他人のPC環境でセキュリティレベルをマクロで変えたら、それはハッキング行為です。それは、してはならない、プログラマの最低限の常識だと思います。

>個人でデジタル署名をつけるとなると、やはりお金を払って証明書を発行してもらうしかないのでしょうか?

いわゆる CA証明のことですが、コンピュータの管理をしている知り合いにも聞いてみたりしました。海外では安価で登録してくれるところがあるというのですが、日本では、年間最低でも、6~7万円するようです。たとえば、セコムとかVeriSignとか。これと別に、海外ではアングラツールが出回ったそうですが、その実態は知りませんが、MSはセキュリティを変えたそうです。せめて、プロバイダの発行する証明書が使えればと思ったのですが、それもダメでした。(有償です)

それで、これも折衷案ですが、マクロを分離してアドイン型にすることですね。
アドイン型なら、他のアドインも動かしている人はほとんどですから、 Excel2003は、「高」でも通ります。「最高」は通りません。それも嫌だという人は、アドインも使わないのだから、もともと、マクロなども使わない人です。それは無視してよいと思います。

一応、ローカルのApplication Data の場所が必要です。

C:\Documents and Settings\[ユーザー]\Application Data\Microsoft\AddIns\

時々、Program Files 側に、アドインを入れる人がいますが、Win 2000 以上では、芳しくありません。

それをインストーラを使うことになるかと思います。今、私は、きちんとインストーラについて研究してはいないので、詳しくはお答えできません。

最後に、マクロ-セキュリティ-信頼できる発行元

 □組み込み済みのアドインとテンプレートをすべて信頼する

にはチェックが入っていないといけません。
    • good
    • 0
この回答へのお礼

ありがとうございます。そもそもの所以からわかってとても有り難いです。

>素人VBAプログラマーの作るものなどは信頼が置けない

ってのは困りますね(泣)。VBAって、そもそも素人でも扱えるプログラムというイメージだったのですが。。。
普通に複数のユーザー又はパソコンで使うことはあり得ると思うのに、こういう事態を想定してなかったのかなと思いますね。

とりあえず、セキュリティレベルを変えてもらうよう説得してみようと思います。向こうも私のファイルが使えないと困るのは事実ですし。

アドインとインストーラの方は経験がないのでちょっとハードルは高いですが、説明を見ると出来るかもしれないと思うので勉強してみようと思います。

わかりやすい説明でした。ありがとうございました。

お礼日時:2007/05/30 17:45

#1さんが提案されたようにアドイン化するのがベターだと思いますが、


セキュリティレベル「高」の状態でマクロを有効にする方法がないわけではありません。

 >>使用者が自分で証明書を作成し、使用者自身が署名すればいいのです<<

コードが保護されている場合にはできませんし、使用者側に多少の技術力と若干の手間が必要ですが、
・最低限の知識・技術がある人が、
・自分でコードを見た上で、
・自己責任で使用する。
と言う意味では順当な手順かと思います。

1.Selfcert.exeを起動する。
(2003の場合、C:\Program Files\Microsoft Office\OFFICE11 あたりにある)
2.適当な名前を入れてOK
3.VBEを開く
4.ツール>デジタル署名>選択>証明書を選択>OK>OK

このタイプの証明書はエクスポートできません。
このタイプの署名は、署名したPC以外では実質無効です(Office2003の場合)

私の個人的な考えですが、
・"セキュリティレベル"の意味合いを理解していない
・セキュリティレベルを変更する裁量がない=マクロの使用について裁量がない
・自分でコード開いて署名する技術力がない
・それらをカバーする人間が周囲にいない
という人はそもそもマクロを使用するべきではないと思います。

善意のマクロであっても、既定と異なる挙動が原因となって
周囲を巻き込んだトラブルに発展する可能性は十分あります。

アドイン化するにしても、将来的に
「前のパソコンでは動くのに新しいパソコンでは動きません!!」
「アドインかなにか使ってたんじゃないですか?」
「アドインって一体なんですか??初心者なのでわかりやすく説明してください!!」
みたいなやりとりが発生しそうな予感がします(苦笑

↓下記は私がいつもお世話になっているサイトの署名関係の記述です

参考URL:http://www.asahi-net.or.jp/~ef2o-inue/secur/sub0 …
    • good
    • 0
この回答へのお礼

ありがとうございます。

>>使用者が自分で証明書を作成し、使用者自身が署名すればいいのです<<

ということは、先方に自分で作ってもらう、ということですよね。
私がフォローできる範囲の人なら出来そうです。
これも選択肢の一つになりそうです。

たしかに、予定外の操作でフリーズすることもあり得ますし、フリーズしなくても、VBAのエラーメッセージが出たりした時点で「動かなくなった!」「フリーズした!」と言われる可能性はあります。エラー回避の策はとってますが、それでも想定外、ということはありますし。。。

やはり使う側にレベルアップしてもらうことを考えるのが第一のようですね。

ありがとうございます。
こちらもわかりやすい説明で参考になりました。

お礼日時:2007/05/30 18:01

追伸:


# 今、私は、きちんとインストーラについて研究してはいないので、詳しくはお答えできません。

以下のインストーラで、アドインが、正しい場所にインストールすることを確認できました。
以下は個人用はフリーソフトウェアですが、プロフェッショナルライセンス版もあります。(5,250円税込み)

今読んでみると、Excelアドインで、プロフェッショナル版に関係しそうなものは、
・COMサーバ/ActiveXコントロールの登録をサポート
があります。


EXEpress CX5
http://www.webtech.co.jp/onlinesoft/exepress/
    • good
    • 0
この回答へのお礼

さらに詳しく調べてくださって、ありがとうございます。

リンク先も見に行ってみます。

お礼日時:2007/05/30 17:50

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