[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『特定のエクセルについて、常に『コンテンツの有効化』を表示するようにしたい』解決(かず)
特定のエクセルについて、常に『コンテンツの有効化』を表示するようにしたいのですが
、セキュリティセンターの信頼済みドキュメントの無効をチェック入れるしかないのでしょうか?マクロで対応することは不可能なのでしょうか?
特定のエクセルだけ、常に『コンテンツの有効化』を表示するようにしたい理由ですが、
何年か前に作成してあったマクロに修正をいれると動作がおかしくなり、『コンテンツの有効化』をすると動作が安定するので苦肉の策とて実施することにしました。
< 使用 Excel:Excel2010、使用 OS:Windows7 >
>>.何年か前に作成してあったマクロに修正をいれると動作がおかしくなり、『コンテンツの有効化』をすると動作が安定するので苦肉の策とて実施することにしました。
小手先の対処ではなく、動作が不安定になるという、このマクロを安定実行させるように、不意具合があるところを改善すべきでは?
最初からマクロ有効で開くと不安定になるコードをアップし、具体的にどこでどうなるかを説明されれば 皆さんからアドバイスがある可能性大ですよ。
(β) 2015/08/04(火) 18:10
ちなみに、修正する部分はどんな修正をするかに関わらず動作が不安定になります。
dim a as long
a = 1
のようなのを保存するだけでもおかしくなります。
恐らくですが
エクセルを起動⇒EXCEL2010の起動中ですの画面⇒WorkBookのOpenイベントが動く⇒エクセルの画面になる
が通常の起動の順番だと思うのですが
エクセルを起動⇒WorkBookのOpenイベントが動く⇒EXCEL2010の起動中ですの画面⇒エクセルの画面になる
と順番が変わってっている気がします。
コンテンツの有効化をすると絶対にマクロが後で動くので問題なく動くのでは?と思っているところです。
(かず) 2015/08/05(水) 09:34
Workbook_Openイベントがあるということですので、ThisWorkbookモジュールだけでもコードアップできませんか? また、このWorkbook_OPenは、開こうとしているマクロブックに記述されているんだと思いますが、そのほかに AddIn あるいは参照設定で、何かブックが開かれていることはありませんか?(VBE画面のプロジェクトエクスプローラで確認できます)
いずれにしても、通常なら、そのようなことは全く発生するわけはないので、何か原因があるわけですよね。 その原因をつぶしておかなければ、たまたま対処療法でその場は切り抜けたとして、「どこかおかしい」構造は かわらないわけですよね。
あるいは、新規ブックに、既存のモジュールをインポート(あるいはコピペ)して、そのブックを保存して開くとどうなるかも 試してみる価値はあるかもしれませんよ。
さらに、いったんエクセルを立ち上げる、そのあと、そのエクセル区画で、このマクロブックを開くとどうなるか。 そういうことは試してみられましたか?
(β) 2015/08/05(水) 09:44
(デイト) 2015/08/05(水) 10:13
基本的にはβのスタンスはコメントした通りです。(ブックが破壊されている可能性も含め根本を直す)
しかし、なかなか、納得していただけないようですね。
>>セキュリティセンターの信頼済みドキュメントの無効をチェック入れるしかないのでしょうか?マクロで対応することは不可能なのでしょうか?
まず、マクロ実行可否の制御はセキュリティセンターでの登録以外には手がないと思っていますが 何かしらの手法で【マクロで設定】します。そのためには【マクロが動く必要がある】わけで ということは、その時には【マクロ有効】になっていないとだめですよね。 という状態ですから、処理前に Workbook_Open は走りますよね?
そうではなく、マクロ無効の状態にしておいて、この状態で【マクロを動かして設定変更】する? 不可能ですね。 マクロ無効ですからマクロは動きません。
ですから、残念ながら (かず)さんの方針そのものが【ロジック破綻】になっていると思いますよ。
ちなみに、VBSで、エクセルを立ち上げマクロ無効にする。その上で、マクロブックを開くとマクロ無効ですから たとえWorkbook_Openが記述されていても動きません。 で、そのあと、(VBS内で)マクロ区画をマクロ有効に設定しても、開かれてしまったブックはマクロ無効のままです。
(β) 2015/08/05(水) 13:34
βさんがおっしゃるとおりに根本は解決せずに逃げているだけです。
コードが多すぎてどこを載せるかも悩んでいますし
動作が不安定になる時は、Openイベント、ボタンClickイベントだろうが
コーディングを入れて部分の動作がおかしくなります。
また、変更を保存したエクセルが正常に動く端末(ちなみに私の端末は正常に動きます)
正常に動かない端末があります。マクロが壊れるというよりは動作環境によるものの様な気がしています。
とはいえ、動かない端末も動くときもありますしし、ローカルだと動く確立が高く
ドメインに入っていると動かない確立が高いということもあります。
あまりにも、わからなくて逃げている状態です。
考えているのは
?@マクロを無効にするためのマクロを別のブックに書く。
?Aそこから、今回のマクロがあるブックをを起動する。
?B今回のマクロの終わり際に、マクロを有効にする
という形で可能なのかと考えていました。
(かず) 2015/08/05(水) 18:06
そういうようになるブックがたくさんあるのか、ある特定のブックのみなのかにもよりますが ある特定のブックのみであれば、ブックが破損している可能性もあるわけですね。
破損しているとすれば、それを、設定やマクロでなんとか使うのではなく、家を建て替えるというかリフォームするというか 新規ブックに、該当のブックのすべてのモジュールを【コピペ】
こうして動くかどうか試してみればと思うのですが?
(β) 2015/08/05(水) 19:10
βさんに一票です。
βさんの意見が納得できないならコードを見せてもらわないとどうにもできないですよ。
コードは見せられない、だけどそれがないと困る。 なら、どれだけ損失になるのか責任者に説明してお金を掛けてプログラムを買ったほうが ここで聞くより建設的だと思いますが。 (稲葉) 2015/08/06(木) 11:55
コードの添付は、量が多すぎるのでやはり無理ですね。
コンテンツの有効化がマクロでできるかどうか。
その方法だけが知りたいのですが無理なのでしょうか。
膨大なコードのどの部分にでも
dim a as long と書くだけでマクロが動作しなくなります。
OpenであろうとClickであろうと標準モジュールであろうとです。
とりあえず、解決とさせて頂きます。
補足
レジストリの操作で解決しました。
(かず) 2015/08/07(金) 14:09
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.