确定是否记录宏并且未被人修改

时间:2016-04-15 12:42:07

标签: vba excel-vba excel

我想确定一个宏是否由Excel"记录宏"记录,如果可能,如果它已被人修改过。

有一些关于它的线索。例如,

1)录制的宏总是以

开头
Sub m()
'
' m Macro
'

'
    first line
    ...
End Sub

(请注意,有时,可能会在m Macro)之后记录用户名

2)记录的宏总是出现在标准模块中

3)记录的宏NEVER有一个变量,一个条件,一个循环或一个过程调用

从sub的语法,我们不能100%肯定地说一个宏被记录,因为我们总是可以一字一句地跟随并手动编写一个相同的函数。如果没有修改录制的宏,我们无法100%确定,因为人们可以手动更改值或索引。但是,是否有更多的线索(就像我列出的那样)来提高这种信心百分比?

否则,除了语法之外还有其他机制来确定这个吗?

1 个答案:

答案 0 :(得分:0)

简短回答:

我可以写一个sub来看完全就像录制的那样 - 所以你不会知道它们之间的区别。

同样,经验不足的用户可能会录制宏,然后将所需的位复制/粘贴到另一个宏中 - 因此它看起来仍然像录制的宏。

你可以拥有的最接近的事情是一个事件驱动的宏来跟踪VBProject中工作簿的任何变化 - 但是任何在VBE中工作的人都很可能拥有解决这个问题的技术诀窍。