2016-04-15 4 views
0

マクロがExcelの「マクロの記録」によって記録されているかどうかを確認し、可能であれば人によって変更されているかどうかを確認します。マクロが記録されており、人によって変更されていないかどうかを確認します。

いくつかの手掛かりがあります。例えば、

1)記録されたマクロは、ALWAYS ALWAYS標準モジュールに表示さ

Sub m() 
' 
' m Macro 
' 

' 
    first line 
    ... 
End Sub 

(時々、ユーザ名がm Macro後に記録されてもよいことに留意されたい)

2)記録されたマクロによって開始します

3)記録されたマクロは、変数、条件、ループ、またはプロシージャ・コールサブの構文から

を有し、決してマクロを記録しているとは100%確信することはできません。なぜなら、私たちは常に単語をたどり、手動で同じ機能を書くことができるからです。記録されたマクロが変更されていない場合は、100%確実にすることはできません。しかし、この確信度を向上させるための手がかりが(私が挙げたもののような)より多くありますか?

それ以外の場合、これを判断するための構文以外のメカニズムはありますか?

+2

私はあなたの目標についてはあまりよく分かりませんが、私は "ヒント"を追加します:記録されたマクロには多くの "選択"があります... – user3598756

+0

私はモジュールが毎回追加されると思います。上記のフォーマットは、記録されているマクロを検出するトリガーをコード化するのに十分なものです。マクロが編集されたかどうかに関しては、私が考えることができる唯一のアプローチは、問題のメソッドのVBEからコードを保存し、変更の有無をチェック/監視することです。さて、私は記録されたマクロはループを持つことができると思います。 – Will

+0

@記録されたマクロにどのようにループがある可能性がありますか? – SoftTimur

答えて

0

短い答え:私はサブを書くことができ

ありませんが、記録された1つのような正確見て - あなたは違いを知ることはできません。

同様に、あまり経験の少ないユーザーは、マクロを記録し、必要なビットを別のマクロにコピー/ペーストすることができます。そのため、記録されたマクロのように見えます。


あなたはこれに持つことができる最も近いものは、ワークブックのVBProjectの変更を追跡するためのイベント駆動マクロです - しかし、VBEで働く誰もがより可能性が高いことを回避するためのノウハウを持っていますとにかく

関連する問題