- ベストアンサー
エクセル2007でマクロが使えない
いままでエクセル2000を使用していたのをエクセル2007に変えました。 エクセルファイルには、マクロプログラムをたくさん使っているのですが、 2007で使ってみると、マクロが起動しません。 マクロセキュリティで有効にすれば使えるのですが、お勧めできないと かいてあります。 今までどうり、普通に使う方法は、どうすれば良いですか。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
>マクロセキュリティで有効にすれば使えるのですが、お勧めできないと >かいてあります。 ウイルス対策ソフトで対策していれば ある程度マクロの利用に関しては安全ではありますが それでも万全ではないが為の注意喚起です このメッセージがでてもマクロを使用したい場合は有効にするしかありません >今までどうり、普通に使う方法は、どうすれば良いですか。 無条件でマクロが起動するように許可をしておくのではなく 自分で作成した等で信用できるマクロと判っている場合であれば マクロを置く場所を登録しておくことで セキュリティで有効にしなくてもマクロを起動させることができます その場合はまず場所を決めファイルを入れておくフォルダを作成し その中に信用できるファイルをいれておきます あとは以下の手順を実行 方法: 左上の「オフィスボタン」をクリック ↓ 「EXCELのオプション」をクリック ↓ タブを「セキュリティ センター」へあわせる ↓ 「セキュリティ センターの設定」をクリック ↓ タブを「信頼できる場所」にあわせる ↓ 「新しい場所の追加」をクリックして場所を登録する 以上のことをやれば マクロを有効にしておかなくてもが信頼しているファイルとみなし 警告がでることなくマクロが実行されます
その他の回答 (4)
- freetaka
- ベストアンサー率53% (106/197)
おそらく誤解しているのはわたしなのでしょう・・・ Wendy02さんの文章よまないで部分抜粋しただけだったので そしてWendy02さんにはどうやらそれによって 嫌な思いをさせてしまったのでしょうか?お詫びいたします 今までどうり普通に使う方法というところで メッセージがでないような状態でマクロが動く状態にするには それなりに設定が限られていて 自分で選ぶしかないということをいいたかったんですが 申し訳ないです
- Wendy02
- ベストアンサー率57% (3570/6232)
#2の回答者です。 私が書いた話は、良く分かっている人でないと無理かもしれません。気をつけて書いたつもりでしたが、長すぎたようです。どうやら、まったく誤解をしてしまっている人もいるようです。私が、マクロのセキュリティを上げ下げするなんていうことは、そんなに大きな意味があることではありません。ただ、自動起動したくないときがある、そういうときだけです。それで、セキュリティ対策になるなんて思わないです。それほど、私は、能天気な人間ではありません。 現実論というものがあって、実際は、Office のセキュリティは、どの設定でも、あまり直接的な効果はありません。あることが原因で、Microsoft自らが、そのセキュリティの穴を証明してしまいました。一体、このセキュリティの意義というのは、どういうところが出てきたのか、どういう発想なのか、そういう開発の歴史的な経緯もあるはずです。詳しくは説明しませんが、その一端でも知っていれば、発想は変わるはずです。 繰り返しますが、現実問題としてワームウィルスなどの悪意を持ったコードというものは、Office のセキュリティでは阻止できません。ウィルスを作れるぐらいの力がなければ、そして、ウィルスとして、どこを狙えばよいのか知らなければ、ウィルス対策なんて本当にはできないと思います。そうすれば、Office 内部であれこれやろうとしても無駄だということが分かるはずです。 たとえば、#2の私の最後に書いた、Office Live や Avery Maxell のOffice 用のラベル作成用のアドインの方法などが悪用されたら、小ざかしい方法論なんて、何の役にも立ちません。事実、これらのツールはトラブルを起こしています。しかし、明確な解決方法はないようです。 ただ、へたくそなコードで、単にトラブルを起こすものが、仮に、Office がフリーズしたとしても、悪意を持ったコードとは、最初からフェーズが違うということです。それ以上に、明確な目的の分からないマクロや、誰が作ったか分からないマクロは、絶対に使わないことです。それ以上に勝るセキュリティはありません。 昔、ここで良く書いていた有名な人に、Ver.4マクロ関数の利用はトラブルを起こすから、それを使うこと自体が危険だと言っていた人がいました。まるでウィルス扱いです。マクロ関数の使い方さえ知っていればよいだけで、それ自身に何の問題はないのですが、本人は詳しく勉強する気もなかったようで、最後の最後まで理解しようとはしませんでした。いくら、その情報入手先とか示したところで、本人が勉強する気がないのなら、いくら説明しても無駄です。世の中の大多数はそんなものだと思います。 実際に、その問題に精通しているかどうかの問題なのだ思います。こういう問題に精通せず、その危険なポイントが何か分かず、全体論から話をまとめようとすると、こちらの話は耳に入らないと思います。やれることは何でもするしかないでしょう。ついでなら、マクロもやめる?それも選択肢のひとつだと思います。一旦インストールした後は、グループポリシーを使用して一元管理したほうがよいですが。 これ以上は、他人・他社の問題ですから、私自身が、いくらアドバイスしたところで、その問題に直接関与できるわけではありませんから、ここで書いたところで無駄になると思います。 たとえば、素人の使うものではありませんが、「マクロカッター」というツールがあります。私個人はこのようなツールは使いませんが、このツールの開発者の考え方を肯定しています。餅屋は餅屋なのです。この「マクロカッター」もネガティブな面しか強調されません。また、誤解されてしまうかもしれません。理由は、本質的なところは書いていないし、書けないからに他ならないのです。 http://www.skcapi.co.jp/Mcutter/index.htm
- freetaka
- ベストアンサー率53% (106/197)
結局のところ どれをおすすめしないとかいうわたしやWendy02さんの回答は マクロを甘い設定で利用するか 厳密に管理していくか自分で選んでやっていくしかないんですよ たとえば Wendy02さんは >「すべてのマクロを有効にする(推奨しません。危険なコードが実行される可能性があります)」 > Enable all macros [not recommended; potentially dangerous code can run] >事情に応じて、マクロのセキュリティの選択を変えればよいのではないかと思います。そのフォルダ自体を、信頼できる場所にはしません。自作のマクロ付きのブックとそうでないブックのフォルダを厳しく別けていくという管理は、なかなか難しいと思うからです。 という方法でやっているということですが 自分でマクロに関して注意を払えるならこれでよいでしょう ただし注意せず実行すれば実行されます またはファイルを開いただけで実行されるマクロも無条件で実行されます しかしこの方法でやっている方がほとんどでしょう 実際にわたしも自分でマクロの内容を確認してから実行することがほとんどですが 家では簡易的なこちらの方法をとっています 私の提示した方法は フォルダを作成し信頼できる場所として登録しておき そこにファイルをいれて管理するとしたものですが 登録したフォルダ以外の場所にあるファイルのマクロは 実行されることがありません マクロの内容を確認したうえで実行できるフォルダ内に移せるというものです 注意せずに実行しようとしても許可をださないうちは実行できません なので注意できない人向けといえる方法ですが この方法で個人レベルでやっている方はほとんどいないでしょう これはわたしの職場内でとっている方法です ただしWendy02さんの回答にあるような きびしくフォルダをわけるようなことはしていません そのかわり実行できるファイルの場所が限定されるので 実績としては職場で皆さんファイルを整理する習慣がついて かなり良好です マクロの内容はWendy02さんの回答にあるように 内容がわかる人がチェックをするようなことになりますが これだけはどうしようもないです SEの集まりであるわたしの職場内においても 他人が書いているコードはわかりずらい部分があったりしますからね とにかくどこまでマクロの実行を管理するかのレベルは 個人の判断にもよると思いますので そこらへんも補足または新しく質問を投稿すれば いろいろな案や回答がつくかもしれません マクロの実行に関して甘い設定をマイクロソフトが推奨されない方法としていても 実行するには許可をださなければならない まあそれぞれ自分がこれでいいと思うところでやればいいということになります
- Wendy02
- ベストアンサー率57% (3570/6232)
こんにちは。 結論: 最終的には、ユーザーの判断に委ねるしかないと思いますが、安全なセキュリティというものは、Office 単独ではありえません。ただ、会社内などで違うポリシーの人とぶつかったら、よりベターなもの、論理的なものを選ぶということになります。しかし、こうしたOffice 内部のセキュリティは、極論すると形骸化や形式主義でしかありません。 それと、おそらくは、Excel 2000のコードの半分近くはそのまま使えないかもしれません。Excel 2000 で作ったエラーに甘く作ったコードは、2007では、ハングやエラーを起こすものもあります。 以下、現在の実情に合わせた説明を詳しくさせていただきます。 詳細と背景: >マクロセキュリティで有効にすれば使えるのですが、お勧めできないとかいてあります。 そういう問題は、人はいろんなことを言いますが、本質的には、一種のパラドックスだと思います。セキュリティを下げれば、ウィルスに感染する可能性があるけれども、上げればマクロは動かないということです。 こういう警告の文言というのは、本来、米国の文化的な背景に基づくもので、何かあったときに、ユーザーは、マイクロソフトへの訴訟が成り立つからではないかと思われます。警告文を読んだら、何かあったら、もう自分たちの責任ではない、ということになるわけです。多くの日本人は、物事に対してシリアスに受け取るので、MSの警告を100%真に受けて、どうしたらよいのか、ジレンマに陥るわけです。 会社では、マクロをやめてしまえという、極端な労働効率を考えない時代遅れの人もいますが、これは、米国でも、労働効率は関係がないのですが、VBEditor を切り離してしまう極端なオプションも存在しています。マクロウィルスがどの程度の問題か、どういうものか、だんだん、分からなくなってきてしまっても、なお、同じようなセキュリティの選択を迫られるのです。私は、この仕組みにナンセンスなものが含まれているような気がします。このような問題で、実際は、その問題の実体が分かっていないから起きることだと思います。 よほど古いファイルを持ち出してこなければ、いまどき、純粋なマクロウィルスなどに感染するとは思えないのです。マクロウィルスは、しょせん素人の作ったもので、Office 2007で稼動する環境では、ほとんど通用しません。しかし、ウィルスとして成立させるためには、もっと別の手の込んだものでなくてはなりません。だから、外部のアンチウィルス・ソフト、厳密にいうと、Microsoft Antivirus APIをサポートしているソフト(=大手の会社)に委ねるしかないと思うのです。もともと、Office 単独で、ウィルスを防ぐなどということは不可能です。 「すべてのマクロを有効にする(推奨しません。危険なコードが実行される可能性があります)」 というのも、「警告を表示してすべてのマクロを無効にする」も、現在のウィルスにとっては、そんなことは関係がないのです。それに、マクロ自体のどれが安全で、どれが危険などということも、ベテランの人がコードを読んでみなければ分かりはしないわけです。 ただ、そうしたOffice のセキュリティ自体が、無駄だとは言いません。 たとえば、セキュリティセンターで、「信頼できる場所」は、アドインとPERSONAL.XLMS に対するフォルダにするべきもので、デフォルトパスやプライベート・データ・パスを設定してしまうというのは、お勧めしません。また、「VBAプロジェクト・オブジェクトモデルへのアクセスを信頼する」はオフのままにすべきだと思います。 選択範囲の中では、マクロ付きブックを他のPCにあちこちに動かさず、自分だけのマクロなら、デジタル署名を入れる方法もあります。 セキュリティセンターのマクロの設定を、 「デジタル署名されたマクロを除き、すべてのマクロを無効にする」 にしておいて、開いたときに、警告が出てくるはずですから、デジタル署名付きのマクロの発行者をすべて信頼するという方法があります。デジタル署名を入れたものは、フリーパスします。 それが、現時点の選択では、ベストの方法だと言えるかもしれません。もちろん、会社が、CAデジタル証明を別けてくれるなら、それに越したことがありませんが、一般の会社では経費の掛かる問題ですから皆無に等しいです。しかし、これらも面倒だといえば違いありません。 これは私個人の方法でもあるのですが、通常の設定は、 「すべてのマクロを有効にする(推奨しません。危険なコードが実行される可能性があります)」 Enable all macros [not recommended; potentially dangerous code can run] 事情に応じて、マクロのセキュリティの選択を変えればよいのではないかと思います。そのフォルダ自体を、信頼できる場所にはしません。自作のマクロ付きのブックとそうでないブックのフォルダを厳しく別けていくという管理は、なかなか難しいと思うからです。 そして、基本的には、コードが分からないものは使わないということです。もうひとつは、プロジェクトのプロテクトしてある場合、パスワード・ダイアログが表示しないものと、出所がはっきりしているもの以外は使用しないということです。後者のダイアログが表示しないのは、97以下のマクロか、クラックの技術を使ってパスワード機能を壊したものだからです。それほどまでコードを隠す理由としては、他人の技術を盗んだものが大半です。以前、MSのサポートでは、VBEditor側の著作権を気にするなら、コンパイル型にしなさい、と書かれていました。 なお、たとえば、Office Live や Avery Maxell のOffice 用のラベル作成用のアドインなどは、ユーザーの了解もなしに割り込みするし、アンインストール以外に解除する方法を持ちません。また、Google Desktop のアドインは、人知れずにアドインしています。こうしたものは、最初からセキュリティには掛かりません。表示すら、ユーザーの自由になりません。私が、最初に書いたように、Officeのセキュリティは「形骸化」していると言わざるを得ないのです。
お礼
ありがとうございます。デジタル署名の方法もやってみます。 難しい文面ですが、 非常に参考になりました。
お礼
ありがとうございました。 何とか使えるようになりました。