ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Ascertaining whether a search in VBA code returns a string or a reserved word (https://www.excelbanter.com/excel-programming/371736-ascertaining-whether-search-vba-code-returns-string-reserved-word.html)

Paul Martin

Ascertaining whether a search in VBA code returns a string or a reserved word
 
Hi all

I am writing some code that searches a VBA project for (in this case)
APIs and I am using "Declare" as the search criteria. If I find
"Declare", is there some way (perhaps an API) that can ascertain
whether the use of "Declare" is a string or a reserved word?

Now, I realise that if it is an API, it would be followed by "Function"
or "Sub". I have other search criteria that I also need to look for
(such as "Shell" and ".RegisterDatabase").

Any suggestions appreciated. Thanks in advance.

Paul Martin
Melbourne, Australia


Terry Kreft

Ascertaining whether a search in VBA code returns a string or a reserved word
 
I believe you would have to parse the line.

--

Terry Kreft


"Paul Martin" wrote in message
oups.com...
Hi all

I am writing some code that searches a VBA project for (in this case)
APIs and I am using "Declare" as the search criteria. If I find
"Declare", is there some way (perhaps an API) that can ascertain
whether the use of "Declare" is a string or a reserved word?

Now, I realise that if it is an API, it would be followed by "Function"
or "Sub". I have other search criteria that I also need to look for
(such as "Shell" and ".RegisterDatabase").

Any suggestions appreciated. Thanks in advance.

Paul Martin
Melbourne, Australia




Paul Martin

Ascertaining whether a search in VBA code returns a string or a reserved word
 
Hi Terry

Could you please explain?

Thanks

Paul



Terry Kreft wrote:

I believe you would have to parse the line.

--

Terry Kreft


"Paul Martin" wrote in message
oups.com...
Hi all

I am writing some code that searches a VBA project for (in this case)
APIs and I am using "Declare" as the search criteria. If I find
"Declare", is there some way (perhaps an API) that can ascertain
whether the use of "Declare" is a string or a reserved word?

Now, I realise that if it is an API, it would be followed by "Function"
or "Sub". I have other search criteria that I also need to look for
(such as "Shell" and ".RegisterDatabase").

Any suggestions appreciated. Thanks in advance.

Paul Martin
Melbourne, Australia



[email protected]

Ascertaining whether a search in VBA code returns a string or a reserved word
 
A line is made up of words, a combination of reserved words, variable
names, literals etc.
In order to determine if a word is reserved, you'd have to compare each
one to a dictionary, as in "If it's in the dictionary, it's reserved."

If you read an entire line of code, you could use Split to break the
line into an array of individual words (split on the space) and then
compare them to the dictionary.


Dave Peterson

Ascertaining whether a search in VBA code returns a string or areserved word
 
Can you look for it at the beginning of the line--after you trim any leading
spaces (and ignoring Public/Private key words)?

And I think you'd have to make sure a space character followed it.

And you may have to count quotes to see if you're in a string.

Dim myStr as string
mystr = "Do you have anything to" & _
" declare"





Paul Martin wrote:

Hi all

I am writing some code that searches a VBA project for (in this case)
APIs and I am using "Declare" as the search criteria. If I find
"Declare", is there some way (perhaps an API) that can ascertain
whether the use of "Declare" is a string or a reserved word?

Now, I realise that if it is an API, it would be followed by "Function"
or "Sub". I have other search criteria that I also need to look for
(such as "Shell" and ".RegisterDatabase").

Any suggestions appreciated. Thanks in advance.

Paul Martin
Melbourne, Australia


--

Dave Peterson

Terry Kreft

Ascertaining whether a search in VBA code returns a string or a reserved word
 
I would but Piet has beaten me to it.

--

Terry Kreft


"Paul Martin" wrote in message
ups.com...
Hi Terry

Could you please explain?

Thanks

Paul



Terry Kreft wrote:

I believe you would have to parse the line.

--

Terry Kreft


"Paul Martin" wrote in message
oups.com...
Hi all

I am writing some code that searches a VBA project for (in this case)
APIs and I am using "Declare" as the search criteria. If I find
"Declare", is there some way (perhaps an API) that can ascertain
whether the use of "Declare" is a string or a reserved word?

Now, I realise that if it is an API, it would be followed by

"Function"
or "Sub". I have other search criteria that I also need to look for
(such as "Shell" and ".RegisterDatabase").

Any suggestions appreciated. Thanks in advance.

Paul Martin
Melbourne, Australia





Paul Martin

Ascertaining whether a search in VBA code returns a string or a reserved word
 
Thanks all for your responses.

I'm using the Find method of CodeModule using the WholeWord argument as
True, so there's no problem capturing the various search criteria, and
this is very efficient. I was wondering if there's some way that VBA
(or an API) would recognise the use of the word as a reserved word or
otherwise.

Based on the responses I've received, the answer appears to be no. All
the solutions are based on capturing a code line as a string.


Dave Peterson wrote:

Can you look for it at the beginning of the line--after you trim any leading
spaces (and ignoring Public/Private key words)?

And I think you'd have to make sure a space character followed it.

And you may have to count quotes to see if you're in a string.

Dim myStr as string
mystr = "Do you have anything to" & _
" declare"





Paul Martin wrote:

Hi all

I am writing some code that searches a VBA project for (in this case)
APIs and I am using "Declare" as the search criteria. If I find
"Declare", is there some way (perhaps an API) that can ascertain
whether the use of "Declare" is a string or a reserved word?

Now, I realise that if it is an API, it would be followed by "Function"
or "Sub". I have other search criteria that I also need to look for
(such as "Shell" and ".RegisterDatabase").

Any suggestions appreciated. Thanks in advance.

Paul Martin
Melbourne, Australia


--

Dave Peterson



Dave Peterson

Ascertaining whether a search in VBA code returns a string or areserved word
 
I can't imagine that an API would care about the reserved words in Excel's VBA,
or MSWord's VBA, or PPT's VBA or AutoCad's VBA or any of the other flavors of
VBA.

It wouldn't make sense to me--but I've been wrong lots of time.

Paul Martin wrote:

Thanks all for your responses.

I'm using the Find method of CodeModule using the WholeWord argument as
True, so there's no problem capturing the various search criteria, and
this is very efficient. I was wondering if there's some way that VBA
(or an API) would recognise the use of the word as a reserved word or
otherwise.

Based on the responses I've received, the answer appears to be no. All
the solutions are based on capturing a code line as a string.

Dave Peterson wrote:

Can you look for it at the beginning of the line--after you trim any leading
spaces (and ignoring Public/Private key words)?

And I think you'd have to make sure a space character followed it.

And you may have to count quotes to see if you're in a string.

Dim myStr as string
mystr = "Do you have anything to" & _
" declare"





Paul Martin wrote:

Hi all

I am writing some code that searches a VBA project for (in this case)
APIs and I am using "Declare" as the search criteria. If I find
"Declare", is there some way (perhaps an API) that can ascertain
whether the use of "Declare" is a string or a reserved word?

Now, I realise that if it is an API, it would be followed by "Function"
or "Sub". I have other search criteria that I also need to look for
(such as "Shell" and ".RegisterDatabase").

Any suggestions appreciated. Thanks in advance.

Paul Martin
Melbourne, Australia


--

Dave Peterson


--

Dave Peterson

NickHK

Ascertaining whether a search in VBA code returns a string or a reserved word
 
Paul,
You could check if the single line had a "Declare " and a " Lib " (note the
spaces) and compare text sensitive. Whilst not 100% conclusive, it would be
a pretty strange string to have both exactly like that.
Depending what you're after, maybe check it's not a comment first.

NickHK

"Paul Martin" wrote in message
ups.com...
Thanks all for your responses.

I'm using the Find method of CodeModule using the WholeWord argument as
True, so there's no problem capturing the various search criteria, and
this is very efficient. I was wondering if there's some way that VBA
(or an API) would recognise the use of the word as a reserved word or
otherwise.

Based on the responses I've received, the answer appears to be no. All
the solutions are based on capturing a code line as a string.


Dave Peterson wrote:

Can you look for it at the beginning of the line--after you trim any

leading
spaces (and ignoring Public/Private key words)?

And I think you'd have to make sure a space character followed it.

And you may have to count quotes to see if you're in a string.

Dim myStr as string
mystr = "Do you have anything to" & _
" declare"





Paul Martin wrote:

Hi all

I am writing some code that searches a VBA project for (in this case)
APIs and I am using "Declare" as the search criteria. If I find
"Declare", is there some way (perhaps an API) that can ascertain
whether the use of "Declare" is a string or a reserved word?

Now, I realise that if it is an API, it would be followed by

"Function"
or "Sub". I have other search criteria that I also need to look for
(such as "Shell" and ".RegisterDatabase").

Any suggestions appreciated. Thanks in advance.

Paul Martin
Melbourne, Australia


--

Dave Peterson






All times are GMT +1. The time now is 01:24 AM.

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