2010/11/13

access2010 access2007 無効モードとマクロとVBAマクロ

セキュリティの警告が表示されている状態が無効モード。この時、マクロとVBAマクロの動作は異なる。
Command0押下時、マクロは開始され、マクロアクションは実行される。
Command1押下時、マクロは開始されるが、Unsafe Actionを実行しようとした時点で中止される。
Command2押下時、イベントプロシージャは実行されない。エラーも出ない。
埋め込みマクロじゃなくても同じ。

無効モードについて、アプリケーション配布時にどうなるか理解をしておかないと、思わぬトラブルが発生することがある。Runtimeモード/Runtime環境への配布であれば、無効モードで実行されることはないからよいのだけれど、製品版環境へaccdb/accdeでの配布の場合、セキュリティ設定が要求を満たしていない場合仕込んだコードが実行されないということが発生する。

別件、なんで埋め込みマクロなのかを考えると、accdeの場合を想像するとわかりやすい。単体のマクロは編集できるが、埋め込みマクロは編集できない。a2010からデータマクロが使えるけれども、これも考えに入れておかないとだめね。マクロだからaccdeでも編集できる。重要なロジックが含まれているならなおさら要注意。なんだかんだ考えるとRuntimeで実行させるのが比較的安全なのかも知れない。ケースバイケースでいくしかないかな。

0 件のコメント: