ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Detect macros in an Excel file (https://www.excelbanter.com/excel-programming/385466-detect-macros-excel-file.html)

Gleam

Detect macros in an Excel file
 
I am using macros in one file to audit another file. The second file should
not have any macros. Is there a way I can detect this?

JMB

Detect macros in an Excel file
 
Some information on dealing w/the VBProject on Chip's site:

http://www.cpearson.com/excel/vbe.htm#ListAllInProject

I've never had the need to deal w/the VBProject programmatically, but maybe
this will give you a place to start.

"Gleam" wrote:

I am using macros in one file to audit another file. The second file should
not have any macros. Is there a way I can detect this?


[email protected]

Detect macros in an Excel file
 
http://www.google.com/groups?hl=en&l...4a6e1da&rnum=1

You could try a couple of the suggestions in this link.

HTH
Paul
-------------------------------------------------------------------

I am using macros in one file to audit another file. The second file should
not have any macros. Is there a way I can detect this?



Ron de Bruin

Detect macros in an Excel file
 
You can use this to test it

If ActiveWorkbook.HasVBProject then ...............

--

Regards Ron de Bruin
http://www.rondebruin.nl/tips.htm


"Gleam" wrote in message ...
I am using macros in one file to audit another file. The second file should
not have any macros. Is there a way I can detect this?


Tom Ogilvy

Detect macros in an Excel file
 
Added in xl2007?

--
Regards,
Tom Ogilvy

"Ron de Bruin" wrote in message
...
You can use this to test it

If ActiveWorkbook.HasVBProject then ...............

--

Regards Ron de Bruin
http://www.rondebruin.nl/tips.htm


"Gleam" wrote in message
...
I am using macros in one file to audit another file. The second file
should not have any macros. Is there a way I can detect this?




Ron de Bruin

Detect macros in an Excel file
 
Thanks Tom

Added in xl2007?

Yes

Workbook.HasVBProject Property
Returns a Boolean that represents whether a workbook has an attached Microsoft Visual Basic for Applications project. Read-only
Boolean.

Version Added: Excel 2007


I get used to 2007<g
Is that good or bad ?



--

Regards Ron de Bruin
http://www.rondebruin.nl/tips.htm


"Tom Ogilvy" wrote in message ...
Added in xl2007?

--
Regards,
Tom Ogilvy

"Ron de Bruin" wrote in message ...
You can use this to test it

If ActiveWorkbook.HasVBProject then ...............

--

Regards Ron de Bruin
http://www.rondebruin.nl/tips.htm


"Gleam" wrote in message ...
I am using macros in one file to audit another file. The second file should not have any macros. Is there a way I can detect
this?





Ron de Bruin

Detect macros in an Excel file
 
It is useful in 2007, I use it in my mail code examples and on this SaveAs page
http://www.rondebruin.nl/saveas.htm

It compile in older versions so the macro can be used in all versions


--

Regards Ron de Bruin
http://www.rondebruin.nl/tips.htm


"Ron de Bruin" wrote in message ...
Thanks Tom

Added in xl2007?

Yes

Workbook.HasVBProject Property
Returns a Boolean that represents whether a workbook has an attached Microsoft Visual Basic for Applications project. Read-only
Boolean.

Version Added: Excel 2007


I get used to 2007<g
Is that good or bad ?



--

Regards Ron de Bruin
http://www.rondebruin.nl/tips.htm


"Tom Ogilvy" wrote in message ...
Added in xl2007?

--
Regards,
Tom Ogilvy

"Ron de Bruin" wrote in message ...
You can use this to test it

If ActiveWorkbook.HasVBProject then ...............

--

Regards Ron de Bruin
http://www.rondebruin.nl/tips.htm


"Gleam" wrote in message ...
I am using macros in one file to audit another file. The second file should not have any macros. Is there a way I can detect
this?





Gleam

Detect macros in an Excel file
 
I am not sure what you mean by "It compile in older versions " as the command

Debug.Print ActiveWorkbook.hasvbproject

does not work in 2003. It is good to know that Microsoft have improved
things as this would be a good portable solution.

"Ron de Bruin" wrote:

It is useful in 2007, I use it in my mail code examples and on this SaveAs page
http://www.rondebruin.nl/saveas.htm

It compile in older versions so the macro can be used in all versions


--

Regards Ron de Bruin
http://www.rondebruin.nl/tips.htm


"Ron de Bruin" wrote in message ...
Thanks Tom

Added in xl2007?

Yes

Workbook.HasVBProject Property
Returns a Boolean that represents whether a workbook has an attached Microsoft Visual Basic for Applications project. Read-only
Boolean.

Version Added: Excel 2007


I get used to 2007<g
Is that good or bad ?



--

Regards Ron de Bruin
http://www.rondebruin.nl/tips.htm


"Tom Ogilvy" wrote in message ...
Added in xl2007?

--
Regards,
Tom Ogilvy

"Ron de Bruin" wrote in message ...
You can use this to test it

If ActiveWorkbook.HasVBProject then ...............

--

Regards Ron de Bruin
http://www.rondebruin.nl/tips.htm


"Gleam" wrote in message ...
I am using macros in one file to audit another file. The second file should not have any macros. Is there a way I can detect
this?





Ron de Bruin

Detect macros in an Excel file
 
Hi Gleam

The macro examples on my site compile OK
See How I test the application version in the code

--

Regards Ron de Bruin
http://www.rondebruin.nl/tips.htm


"Gleam" wrote in message ...
I am not sure what you mean by "It compile in older versions " as the command

Debug.Print ActiveWorkbook.hasvbproject

does not work in 2003. It is good to know that Microsoft have improved
things as this would be a good portable solution.

"Ron de Bruin" wrote:

It is useful in 2007, I use it in my mail code examples and on this SaveAs page
http://www.rondebruin.nl/saveas.htm

It compile in older versions so the macro can be used in all versions


--

Regards Ron de Bruin
http://www.rondebruin.nl/tips.htm


"Ron de Bruin" wrote in message ...
Thanks Tom

Added in xl2007?
Yes

Workbook.HasVBProject Property
Returns a Boolean that represents whether a workbook has an attached Microsoft Visual Basic for Applications project. Read-only
Boolean.

Version Added: Excel 2007


I get used to 2007<g
Is that good or bad ?



--

Regards Ron de Bruin
http://www.rondebruin.nl/tips.htm


"Tom Ogilvy" wrote in message ...
Added in xl2007?

--
Regards,
Tom Ogilvy

"Ron de Bruin" wrote in message ...
You can use this to test it

If ActiveWorkbook.HasVBProject then ...............

--

Regards Ron de Bruin
http://www.rondebruin.nl/tips.htm


"Gleam" wrote in message ...
I am using macros in one file to audit another file. The second file should not have any macros. Is there a way I can detect
this?






Tom Ogilvy

Detect macros in an Excel file
 
Gleam,

If you put that command in a module in xl2003 and then did Debug = Compile
VBAProject it does not raise an error. The error only occurs if the code
attempts to execute the commend. I believe Ron is saying he has designed
his code so that command isn't executed except in xl2007. So obviously it
doesn't provide any functionality (you can't use it to check for code) in
versions earlier than 2007.

--
Regards,
Tom Ogilvy


"Ron de Bruin" wrote in message
...
Hi Gleam

The macro examples on my site compile OK
See How I test the application version in the code

--

Regards Ron de Bruin
http://www.rondebruin.nl/tips.htm


"Gleam" wrote in message
...
I am not sure what you mean by "It compile in older versions " as the
command

Debug.Print ActiveWorkbook.hasvbproject

does not work in 2003. It is good to know that Microsoft have improved
things as this would be a good portable solution.

"Ron de Bruin" wrote:

It is useful in 2007, I use it in my mail code examples and on this
SaveAs page
http://www.rondebruin.nl/saveas.htm

It compile in older versions so the macro can be used in all versions


--

Regards Ron de Bruin
http://www.rondebruin.nl/tips.htm


"Ron de Bruin" wrote in message
...
Thanks Tom

Added in xl2007?
Yes

Workbook.HasVBProject Property
Returns a Boolean that represents whether a workbook has an attached
Microsoft Visual Basic for Applications project. Read-only
Boolean.

Version Added: Excel 2007


I get used to 2007<g
Is that good or bad ?



--

Regards Ron de Bruin
http://www.rondebruin.nl/tips.htm


"Tom Ogilvy" wrote in message
...
Added in xl2007?

--
Regards,
Tom Ogilvy

"Ron de Bruin" wrote in message
...
You can use this to test it

If ActiveWorkbook.HasVBProject then ...............

--

Regards Ron de Bruin
http://www.rondebruin.nl/tips.htm


"Gleam" wrote in message
...
I am using macros in one file to audit another file. The second file
should not have any macros. Is there a way I can detect
this?








Ron de Bruin

Detect macros in an Excel file
 
Correct


--

Regards Ron de Bruin
http://www.rondebruin.nl/tips.htm


"Tom Ogilvy" wrote in message ...
Gleam,

If you put that command in a module in xl2003 and then did Debug = Compile
VBAProject it does not raise an error. The error only occurs if the code
attempts to execute the commend. I believe Ron is saying he has designed
his code so that command isn't executed except in xl2007. So obviously it
doesn't provide any functionality (you can't use it to check for code) in
versions earlier than 2007.

--
Regards,
Tom Ogilvy


"Ron de Bruin" wrote in message
...
Hi Gleam

The macro examples on my site compile OK
See How I test the application version in the code

--

Regards Ron de Bruin
http://www.rondebruin.nl/tips.htm


"Gleam" wrote in message
...
I am not sure what you mean by "It compile in older versions " as the
command

Debug.Print ActiveWorkbook.hasvbproject

does not work in 2003. It is good to know that Microsoft have improved
things as this would be a good portable solution.

"Ron de Bruin" wrote:

It is useful in 2007, I use it in my mail code examples and on this
SaveAs page
http://www.rondebruin.nl/saveas.htm

It compile in older versions so the macro can be used in all versions


--

Regards Ron de Bruin
http://www.rondebruin.nl/tips.htm


"Ron de Bruin" wrote in message
...
Thanks Tom

Added in xl2007?
Yes

Workbook.HasVBProject Property
Returns a Boolean that represents whether a workbook has an attached
Microsoft Visual Basic for Applications project. Read-only
Boolean.

Version Added: Excel 2007


I get used to 2007<g
Is that good or bad ?



--

Regards Ron de Bruin
http://www.rondebruin.nl/tips.htm


"Tom Ogilvy" wrote in message
...
Added in xl2007?

--
Regards,
Tom Ogilvy

"Ron de Bruin" wrote in message
...
You can use this to test it

If ActiveWorkbook.HasVBProject then ...............

--

Regards Ron de Bruin
http://www.rondebruin.nl/tips.htm


"Gleam" wrote in message
...
I am using macros in one file to audit another file. The second file
should not have any macros. Is there a way I can detect
this?








Gleam

Detect macros in an Excel file
 
Many thanks for the clarification.

"Ron de Bruin" wrote:

Correct


--

Regards Ron de Bruin
http://www.rondebruin.nl/tips.htm


"Tom Ogilvy" wrote in message ...
Gleam,

If you put that command in a module in xl2003 and then did Debug = Compile
VBAProject it does not raise an error. The error only occurs if the code
attempts to execute the commend. I believe Ron is saying he has designed
his code so that command isn't executed except in xl2007. So obviously it
doesn't provide any functionality (you can't use it to check for code) in
versions earlier than 2007.

--
Regards,
Tom Ogilvy


"Ron de Bruin" wrote in message
...
Hi Gleam

The macro examples on my site compile OK
See How I test the application version in the code

--

Regards Ron de Bruin
http://www.rondebruin.nl/tips.htm


"Gleam" wrote in message
...
I am not sure what you mean by "It compile in older versions " as the
command

Debug.Print ActiveWorkbook.hasvbproject

does not work in 2003. It is good to know that Microsoft have improved
things as this would be a good portable solution.

"Ron de Bruin" wrote:

It is useful in 2007, I use it in my mail code examples and on this
SaveAs page
http://www.rondebruin.nl/saveas.htm

It compile in older versions so the macro can be used in all versions


--

Regards Ron de Bruin
http://www.rondebruin.nl/tips.htm


"Ron de Bruin" wrote in message
...
Thanks Tom

Added in xl2007?
Yes

Workbook.HasVBProject Property
Returns a Boolean that represents whether a workbook has an attached
Microsoft Visual Basic for Applications project. Read-only
Boolean.

Version Added: Excel 2007


I get used to 2007<g
Is that good or bad ?



--

Regards Ron de Bruin
http://www.rondebruin.nl/tips.htm


"Tom Ogilvy" wrote in message
...
Added in xl2007?

--
Regards,
Tom Ogilvy

"Ron de Bruin" wrote in message
...
You can use this to test it

If ActiveWorkbook.HasVBProject then ...............

--

Regards Ron de Bruin
http://www.rondebruin.nl/tips.htm


"Gleam" wrote in message
...
I am using macros in one file to audit another file. The second file
should not have any macros. Is there a way I can detect
this?









Carl Hartness[_2_]

Detect macros in an Excel file
 
Define a function
Function wkbkHasMacros(fName$) As Boolean
' if Compile error:
' User-defined type not defined
' then VBE Tools - Reference,
' check Microsoft Visual Basic for Applications Extensibility
5.3
Dim m As VBComponent

' if Run-time error '1004'
' Programmatic access to Visual Basic Project is not trusted.
' then Excel Tools - Macro - Security,
' Click to enable "Trust access to Visual Basic Project"

wkbkHasMacros = False
For Each m In Workbooks(fName$).VBProject.VBComponents
' m.Type, 1=module, 2=Class, 3=Form, 100=Excel object
If m.Type = 1 Then
wkbkHasMacros = True
Exit Function
End If
Next m
End Function

and call it with wkbkHasMacros(ActiveWorkbook.Name)

Carl.

On Mar 16, 4:26 pm, Gleam wrote:
I am using macros in one file to audit another file. The second file should
not have any macros. Is there a way I can detect this?




Gleam

Detect macros in an Excel file
 
Carl

I get a compile error at this line:
Dim m As VBComponent

"user-defined type not defined."
Do I need to activate a reference library? Some help on this would be
appreciated as I have just searced help with "reference libraries" and found
nothing helpful

"Carl Hartness" wrote:

Define a function
Function wkbkHasMacros(fName$) As Boolean
' if Compile error:
' User-defined type not defined
' then VBE Tools - Reference,
' check Microsoft Visual Basic for Applications Extensibility
5.3
Dim m As VBComponent

' if Run-time error '1004'
' Programmatic access to Visual Basic Project is not trusted.
' then Excel Tools - Macro - Security,
' Click to enable "Trust access to Visual Basic Project"

wkbkHasMacros = False
For Each m In Workbooks(fName$).VBProject.VBComponents
' m.Type, 1=module, 2=Class, 3=Form, 100=Excel object
If m.Type = 1 Then
wkbkHasMacros = True
Exit Function
End If
Next m
End Function

and call it with wkbkHasMacros(ActiveWorkbook.Name)

Carl.

On Mar 16, 4:26 pm, Gleam wrote:
I am using macros in one file to audit another file. The second file should
not have any macros. Is there a way I can detect this?





Dave Peterson

Detect macros in an Excel file
 
' if Compile error:
' User-defined type not defined
' then VBE Tools - Reference,
' check Microsoft Visual Basic for Applications Extensibility
5.3


Gleam wrote:

Carl

I get a compile error at this line:
Dim m As VBComponent

"user-defined type not defined."
Do I need to activate a reference library? Some help on this would be
appreciated as I have just searced help with "reference libraries" and found
nothing helpful

"Carl Hartness" wrote:

Define a function
Function wkbkHasMacros(fName$) As Boolean
' if Compile error:
' User-defined type not defined
' then VBE Tools - Reference,
' check Microsoft Visual Basic for Applications Extensibility
5.3
Dim m As VBComponent

' if Run-time error '1004'
' Programmatic access to Visual Basic Project is not trusted.
' then Excel Tools - Macro - Security,
' Click to enable "Trust access to Visual Basic Project"

wkbkHasMacros = False
For Each m In Workbooks(fName$).VBProject.VBComponents
' m.Type, 1=module, 2=Class, 3=Form, 100=Excel object
If m.Type = 1 Then
wkbkHasMacros = True
Exit Function
End If
Next m
End Function

and call it with wkbkHasMacros(ActiveWorkbook.Name)

Carl.

On Mar 16, 4:26 pm, Gleam wrote:
I am using macros in one file to audit another file. The second file should
not have any macros. Is there a way I can detect this?





--

Dave Peterson

Gleam

Detect macros in an Excel file
 
Thank you for bringing this to my attention - less haste more speed on my part!
Still not a portable solution until "everyone" is on Excel 2007

"Dave Peterson" wrote:

' if Compile error:
' User-defined type not defined
' then VBE Tools - Reference,
' check Microsoft Visual Basic for Applications Extensibility
5.3


Gleam wrote:

Carl

I get a compile error at this line:
Dim m As VBComponent

"user-defined type not defined."
Do I need to activate a reference library? Some help on this would be
appreciated as I have just searced help with "reference libraries" and found
nothing helpful

"Carl Hartness" wrote:

Define a function
Function wkbkHasMacros(fName$) As Boolean
' if Compile error:
' User-defined type not defined
' then VBE Tools - Reference,
' check Microsoft Visual Basic for Applications Extensibility
5.3
Dim m As VBComponent

' if Run-time error '1004'
' Programmatic access to Visual Basic Project is not trusted.
' then Excel Tools - Macro - Security,
' Click to enable "Trust access to Visual Basic Project"

wkbkHasMacros = False
For Each m In Workbooks(fName$).VBProject.VBComponents
' m.Type, 1=module, 2=Class, 3=Form, 100=Excel object
If m.Type = 1 Then
wkbkHasMacros = True
Exit Function
End If
Next m
End Function

and call it with wkbkHasMacros(ActiveWorkbook.Name)

Carl.

On Mar 16, 4:26 pm, Gleam wrote:
I am using macros in one file to audit another file. The second file should
not have any macros. Is there a way I can detect this?




--

Dave Peterson


Dave Peterson

Detect macros in an Excel file
 
Try changing one line (and remove the reference):

Dim m As Object



Gleam wrote:

Thank you for bringing this to my attention - less haste more speed on my part!
Still not a portable solution until "everyone" is on Excel 2007

"Dave Peterson" wrote:

' if Compile error:
' User-defined type not defined
' then VBE Tools - Reference,
' check Microsoft Visual Basic for Applications Extensibility
5.3


Gleam wrote:

Carl

I get a compile error at this line:
Dim m As VBComponent

"user-defined type not defined."
Do I need to activate a reference library? Some help on this would be
appreciated as I have just searced help with "reference libraries" and found
nothing helpful

"Carl Hartness" wrote:

Define a function
Function wkbkHasMacros(fName$) As Boolean
' if Compile error:
' User-defined type not defined
' then VBE Tools - Reference,
' check Microsoft Visual Basic for Applications Extensibility
5.3
Dim m As VBComponent

' if Run-time error '1004'
' Programmatic access to Visual Basic Project is not trusted.
' then Excel Tools - Macro - Security,
' Click to enable "Trust access to Visual Basic Project"

wkbkHasMacros = False
For Each m In Workbooks(fName$).VBProject.VBComponents
' m.Type, 1=module, 2=Class, 3=Form, 100=Excel object
If m.Type = 1 Then
wkbkHasMacros = True
Exit Function
End If
Next m
End Function

and call it with wkbkHasMacros(ActiveWorkbook.Name)

Carl.

On Mar 16, 4:26 pm, Gleam wrote:
I am using macros in one file to audit another file. The second file should
not have any macros. Is there a way I can detect this?




--

Dave Peterson


--

Dave Peterson

Gleam

Detect macros in an Excel file
 
Many thanks

"Dave Peterson" wrote:

Try changing one line (and remove the reference):

Dim m As Object



Gleam wrote:

Thank you for bringing this to my attention - less haste more speed on my part!
Still not a portable solution until "everyone" is on Excel 2007

"Dave Peterson" wrote:

' if Compile error:
' User-defined type not defined
' then VBE Tools - Reference,
' check Microsoft Visual Basic for Applications Extensibility
5.3

Gleam wrote:

Carl

I get a compile error at this line:
Dim m As VBComponent

"user-defined type not defined."
Do I need to activate a reference library? Some help on this would be
appreciated as I have just searced help with "reference libraries" and found
nothing helpful

"Carl Hartness" wrote:

Define a function
Function wkbkHasMacros(fName$) As Boolean
' if Compile error:
' User-defined type not defined
' then VBE Tools - Reference,
' check Microsoft Visual Basic for Applications Extensibility
5.3
Dim m As VBComponent

' if Run-time error '1004'
' Programmatic access to Visual Basic Project is not trusted.
' then Excel Tools - Macro - Security,
' Click to enable "Trust access to Visual Basic Project"

wkbkHasMacros = False
For Each m In Workbooks(fName$).VBProject.VBComponents
' m.Type, 1=module, 2=Class, 3=Form, 100=Excel object
If m.Type = 1 Then
wkbkHasMacros = True
Exit Function
End If
Next m
End Function

and call it with wkbkHasMacros(ActiveWorkbook.Name)

Carl.

On Mar 16, 4:26 pm, Gleam wrote:
I am using macros in one file to audit another file. The second file should
not have any macros. Is there a way I can detect this?




--

Dave Peterson


--

Dave Peterson



All times are GMT +1. The time now is 05:18 PM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com