Home | Contact Us | FAQ | Search & Site Map | Link to Us
Sign In | Join | Other 45 Sites in Network
Home
DiscussionsAccessExcelInfoPathOutlookPowerPointPublisherWord
DirectoryUser Groups
Related Topics
Outlook ExpressInternet ExplorerWindowsMS Server ProductsMore Topics ...

MS Office Forum / Word / Programming / July 2005

Tip: Looking for answers? Try searching our database.

Dictionary help, please

Thread view: 
Enable EMail Alerts  Start New Thread
Thread rating: 
cunnus88 - 29 Jun 2005 11:08 GMT
Whaddaya know? My third thread starter in one week. Thanks for all th
help, people.

This time, I'm having trouble declaring a Dictionary object.

I've seen the code in other forums and it goes something like:

dim mydictionary as new dictionary

Well, whenever I do that, I get the literal dictionary (you know, th
one with entries and definitions and pronunciation keys?).

I did include a reference to Microsoft Scripting Runtime Library so wh
I should be stuck with a lexicon is beyond me.

Any takers

--
cunnus8
Jezebel - 29 Jun 2005 12:52 GMT
When you declare an object variable Word has to find the definition of the
object. If you don't specify which library to look in, Word searches through
the libraries listed in the References list -- in the order in that the
libraries are listed -- and uses the first instance of the object name that
it finds. In your case, it's trying to find a definition of 'Dictionary' and
the first one it finds is in the Word object library, because the Word
library is listed before the Scripting library.

To solve the problem, specify the library you want in the declaration --

Dim MyDict as Scripting.Dictionary
Set MyDict = new Scripting.Dictionary

This is good practice in all cases when you're declaring an object variable,
even when you mean the Word library. If you want a Word dictionary, use

Dim WordDict as Word.Dictionary

Separately, declaring objects using the 'As new ...' syntax, while
legitimate, is generally considered poor programming practice. Better that
the object instantiations be explicitly under your control.

> Whaddaya know? My third thread starter in one week. Thanks for all the
> help, people.
[quoted text clipped - 12 lines]
>
> Any takers?
cunnus88 - 30 Jun 2005 01:59 GMT
Thanks for the help, Jezebel.

One more question, if you don't mind?

In this case, if there are two objects from two different librarie
with duplicate names, you said that it was possible to access th
object by declaring the library first, putting a period (or membe
variable operator or whatever it's called) after that, then declarin
the object.

But what if I don't even know what the name of the library is? As i
this case, let's say I heard that there was this great object with
lot of functions, but its name was "document" and it was included in
library named "not a word native library" in the references dialog box
Is there a way to find out what the library's name (e.g. "Scripting" a
opposed to "Microsoft Scripting Library") is within VBA or would I hav
to post another message here to discover that?

To clarify with the example we have, the "Scripting" library can b
accessed by including a reference to "Microsoft Scripting Runtime", bu
to fully utilize all its functions, I would have to know that "Microsof
Scripting Runtime" is referenced through the "Scripting" object in th
code window. How would I know this

--
cunnus8
Jezebel - 30 Jun 2005 03:55 GMT
Simplest is to open the Object Browser (on the VBE View menu) -- it lists
them, and also lists all the objects in each case.

Or you can query the application.VBE.ActiveVBProject.References collection.

> Thanks for the help, Jezebel.
>
[quoted text clipped - 19 lines]
> Scripting Runtime" is referenced through the "Scripting" object in the
> code window. How would I know this?
cunnus88 - 01 Jul 2005 06:28 GMT
You're a genius. Thanks

--
cunnus8
 
Sign In
Join
My Latest Posts
My Monitored Threads
My Blog
My Photo Gallery
My Profile
My Homepage

Start New Thread
Enable EMail Alerts
Rate this Thread



©2008 Advenet LLC   Privacy Policy - Terms of Use
This website includes both content owned or controlled by Advenet as well as content owned or controlled by third parties.