Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


13006 / 13644 ツリー ←次へ | 前へ→

【7424】ファイルopen時の「マクロ無効」設定 初心者 03/9/4(木) 16:51 質問
【7426】Re:ファイルopen時の「マクロ無効」設定 INA 03/9/4(木) 18:02 回答
【7427】Re:ファイルopen時の「マクロ無効」設定 初心者 03/9/4(木) 18:45 質問
【7429】Re:ファイルopen時の「マクロ無効」設定 INA 03/9/4(木) 21:14 回答
【7435】Re:ファイルopen時の「マクロ無効」設定 初心者 03/9/5(金) 6:00 お礼
【7507】Re:ファイルopen時の「マクロ無効」設定 INA 03/9/5(金) 21:06 回答

【7424】ファイルopen時の「マクロ無効」設定
質問  初心者  - 03/9/4(木) 16:51 -

引用なし
パスワード
   連日の質問になり、申し訳ありません。
エクセルファイル起動時の設定に関して教えて頂けないでしょうか。

ファイル起動時に表示されるメッセージボックスにて
「マクロを無効にする」をクリックする処理をロジックで
制御する方法はあるのでしょうか?

例:ファイルAとファイルBが存在する場合。
 1.ファイルAを手動で起動。
  「マクロを有効にする」をクリック。

 2.ファイルAでコマンドボタンをクリックしてマクロを実行。
  →マクロの内容は、ファイルBを「マクロを無効にする」の状態でオープンする。

ファイルBを手動でオープンする場合には、「マクロを有効にする」を選択したいので、
ファイルAに制御ロジックを書きたいのですが・・・。
ご存知の方、ご教授の程お願い致します。

【7426】Re:ファイルopen時の「マクロ無効」設定
回答  INA  - 03/9/4(木) 18:02 -

引用なし
パスワード
   ファイルを開く際に、マクロでセキュリティレベルを高に設定すれば、
マクロは無効になります。
しかし、この方法はExcel2002でないとできません。

Excel2002以外の方法としては、
OpenでなくShellExecuteで開けば、
マクロの確認メッセージ(有効/無効)が表示されるので自分で選択するか、
もしくは
イベントを発生させないように以下のようにするしかないでしょう
Application.EnableEvents = False
Workbooks.Open Filename:="ファイルB.xls"

【7427】Re:ファイルopen時の「マクロ無効」設定
質問  初心者  - 03/9/4(木) 18:45 -

引用なし
パスワード
   ▼INA さん:
お返事ありがとうございます。
Excel'97を使用しているので、ShellExecuteを試してみたいと思います。
ヘルプで調べましたが詳しい記述が無かったので、
さらに質問させて頂きたいのですが・・・。

>Excel2002以外の方法としては、
>OpenでなくShellExecuteで開けば、
>マクロの確認メッセージ(有効/無効)が表示されるので自分で選択するか、
別のファイルのマクロを使用して、裏でオープンしたいので、
自分でクリックするのは回避したいのです。

>イベントを発生させないように以下のようにするしかないでしょう
>Application.EnableEvents = False
>Workbooks.Open Filename:="ファイルB.xls"
この方法でファイルをオープンした場合、
ロジックを記述した側のファイルのマクロは処理が止まってしまうのでしょうか?

Sub Question
 Dim strGet as String

 Application.EnableEvents = False
 Workbooks.Open Filename:="ファイルB.xls"

 Workbooks("ファイルB.xls").Worksheets(1).Activate
 strGet = ActiveSheet.cells(1,1).value

End Sub
のような場合、Workbooks("ファイルB.xls").Worksheets(1).Activateの前に
Application.EnableEvents = True の記述が必要になりますか?

【7429】Re:ファイルopen時の「マクロ無効」設定
回答  INA  - 03/9/4(木) 21:14 -

引用なし
パスワード
   >Application.EnableEvents = True の記述が必要になりますか?
必要だと思います。

【7435】Re:ファイルopen時の「マクロ無効」設定
お礼  初心者  - 03/9/5(金) 6:00 -

引用なし
パスワード
   ▼INA さん:
教えて頂いてありがとうございました。

>>Application.EnableEvents = True の記述が必要になりますか?
>必要だと思います。

ファイルのオープン前後に‘EnableEvents’のFalseとTrueを書いてみました。
ステップごとのデバッグや、記述前後の実行確認してみましたが、
「こういう風に違うのですね」と判るような動きの違いが表れなかったので、
開発中の処理に書き込んで、再びテストしてみることにしました。
(テスト用に書いたVBAよりも、メモリを多く使用いているので、
 パフォーマンスに着目すると、記述の有無に違いが表れるかと・・・)

【7507】Re:ファイルopen時の「マクロ無効」設定
回答  INA  - 03/9/5(金) 21:06 -

引用なし
パスワード
   こちらが参考になると思います。
http://www2.moug.net/app/bbs/message.php?cat=exvba&id=20030905-000012

13006 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free