Listing an Objects Properties and Methods

Introduction

If you do some VBA programming regularly, you'll be acquainted with the Object browser, which neatly shows you all objects, properties and methods belonging to any object in Excel (or any other library you have referenced in your VBA project).

Whilst this is a tremendous tool to look for information on just a couple of properties I find it not very handy when you e.g. need to get all of an objects properties into your VBA code.

So because I like a challenge I decided to build my own object browser, which is shown to you here.

What does it do?

This tool uses the tlbinf32.dll to fetch data from typelibraries. I grabbed some code from various places (amongst which Chip Pearson's great site and some newsgroup messages like this one) and created a userform with a treeview control (because this is the type of control that can show hierarchical information so nicely).

The help files of tlbinf32.dll can be downloaded here: tlbinf32.zip and the dll can be found here (not sure if you can use the download at will without any licensing issues though).

After downloading the dll it needs to be registered with windows:

Click Start, run and type:

regsvr32 c:\YourPathToThedll\tlbinf32.dll

Click OK. If successful, Windows will tell you it successfully registered the dll.

In its basic state, you select any object in Excel and start the tool, which will show you the first level set of objects, properties and methods of that selection. Here is what the UI looks like after starting the tool whilst you have a chart title selected:

Screen-shot of the ObjectLister's main dialog showing chart object properties
Tool's main window, showing members of a ChartTitle object

And here is the same window after expanding two of the object's members:

Screen-shot of the ObjectLister's main dialog showing chart object properties
Main window after double clicking "Border" and "Font" objects.

As you can see, it is really easy to get a list of all objects and properties of an object.

What's even better is that you can get them into Excel easily. Clicking the "Report" button yields a list of all objects in the current display. Below a portion of those is shown:

Result of clicking the Report button
Result of clicking "Report".

You can imagine that now it is easy to copy this and paste it into the VBE to quickly create code that sets a lot of properties.

Download

I have made this tool available for download:

Objectlister.zip


Comments

All comments about this page:


Comment by: chead5 (14-5-2007 07:06:34) deeplink to this comment

I seem to be missing the required dll that you mentiuoned in this article. Does anyone know where I can get a good copy of it?


Comment by: Dianne Butterworth (14-5-2007 08:06:40) deeplink to this comment

It looks like tlbinf32.dll might be a file installed with Visual Basic 6; it's not on my system.

The tool is a great idea though.


Comment by: Jan Karel Pieterse (14-5-2007 09:20:39) deeplink to this comment

Hi Dianne,

You're right of course. I have updated the text to add a download link to the tlbinf32.dll. I'm not entirely sure whether this download is permitted though.

Regards,
Jan Karel


Comment by: Pascal (16-5-2007 07:47:51) deeplink to this comment

Jan,

When I came across this page I recognised the potential usefulness of such a utility. You don't mind my adding it to my StumbleUpon firefox extension?

However..
I only get this:
[attempted to paste capture of window here, can't so it's here:
http://www.hotlinkfiles.com/files/27347_lw2vi/ObjLister.png ]
It shows only this:
ChartTitle
     ,

i.e. only a comma below 'ChartTitle'.
'Expand this' after highlighting it has no effect. Nor has any other button.
I have downloaded and properly placed tlbinf32.dll in c:\windows\system32 and it is seen as 'TypeLib information' in Tools|References in VBE.
I tried 'Show Help' but nothing happens. Does TlbInf32.chm need placing somewhere specific?

Thanks, Pascal


Comment by: Jan Karel Pieterse (16-5-2007 08:39:08) deeplink to this comment

Hi Pascal,

The fact that you can even run the tool indicates the tlbinf32.dll is found by Excel, so no problem there.

What happens if you select -say- a cell?

The chm file only contains help about the dll, pressing help should render help about the Excel object and does NOT require the chm file of the tlbinf32.


Comment by: Graham (16-5-2007 09:23:02) deeplink to this comment

Looks great Jan - is there a way of running this on Excel 2007?


Comment by: Pascal (16-5-2007 09:56:32) deeplink to this comment

Just the same except instead of 'ChartTitle', I get 'Range'
Pascal


Comment by: Jan Karel Pieterse (17-5-2007 02:01:09) deeplink to this comment

Graham: It works for me. You do have the dll setup, right?


Comment by: Jan Karel Pieterse (17-5-2007 02:02:23) deeplink to this comment

Pascal: No idea what gives, sorry. Maybe it needs "Trust access to visual basic projects" set? (tools, macro, security, trusted sources tab)


Comment by: Nick Hebb (18-5-2007 05:25:28) deeplink to this comment

Jan,

Thank you for this great tool. It will save me hours of time on a current project.

Version 4 suggestion: Add a option to exclude Parent from the Expand feature. It takes a while to expand, and I'm guessing that a good chunk of the time is for the Parent properties, which most users of the tool probably wouldn't be interested in.


Comment by: Jan Karel Pieterse (18-5-2007 06:37:33) deeplink to this comment

Hi Nick,

You're welcome. As for the parent object: It should step over that one, might be I disabled a relevant piece of the code in troubleshooting other stuff <smile>


Comment by: xMRG (21-5-2007 23:13:01) deeplink to this comment

I get the same error as Pascal.

I commented out the On Error Resume Next line in Sub IterateMembers(). The following error is generated when selecting the Chart Object and pressing Ctrl + Alt + o.

Simple Object Browser: Error message

Oops, An error has occurred in Simple Object Browser
Error:
Error 429: ActiveX component can't create object in IterateMembers.Class Module clsAnalyseObject

Don't know if this helps identify why this tool does not work for Pascal and me.


Comment by: Jan Karel Pieterse (22-5-2007 02:51:40) deeplink to this comment

Hi Pascal and xMRG,

The problem seems to indicate the tlbinf32.dll has not been properly set up.


Comment by: PM (22-5-2007 08:02:09) deeplink to this comment

To solve the problem with tlbinf32.dll and error 429, fire up the command prompt and enter the following line:
regsvr32 c:\windows\system32\tlbinf32.dll

A popup window should open saying:
DllRegisterServer in c:\windows\system32\tlbinf32.dll succeeded.

That's it.


Comment by: xMRG (22-5-2007 09:37:30) deeplink to this comment

Looks great! I got it to work.

Pascal, do this
Go to the Start menu and select Run
Type the following line into the ComboBox
regsvr32 tlbinf32.dll
Press Ok and it should work.

BTW, I put the tlbinf32.dll in
C:\WINDOWS\system32

Hope this helps.


Comment by: Jan Karel Pieterse (22-5-2007 10:07:45) deeplink to this comment

Hi xMRG, Pascal,

Thanks for sharing the solution guys.
I had planned to add this information but you guys beat me to it!


Comment by: Jim McClelland (24-5-2007 14:57:23) deeplink to this comment

I am struggling with an issue which seems related to this thread. I am trying to determine a simple way to assign an object to another object. IOW, I'd like to copy all of the properties of one object to another one. For example, in VBA, copying the guts of one "FormatCondition" object to a new FormatCondition. Have any of you encountered this issue before?


Comment by: Jan Karel Pieterse (24-5-2007 21:22:19) deeplink to this comment

Hi Jim,

Yes I have and the tool is very useful for that. You must however do this manually.
Open the module modMain and modify this line in StartForm:

Set .ObjectToList = Selection
to:
Set .ObjectToList = Selection.FormatConditions(1)

Select any cell with a CF and run the ObjectLister tool.

Expand the found list down to its deepest level (2 I think) and click report.
From there you can use Excel formulas to build your code.


Comment by: Troy (17-12-2007 07:44:05) deeplink to this comment

Incredible tool! This was obviously a huge amount of work!

However, I don't see the methods (e.g. Range.Activate; or Range.Columns.Autofit)???


Comment by: Jan Karel Pieterse (17-12-2007 11:32:38) deeplink to this comment

Hi Troy,

Indeed, it only shows properties and sub-objects. Methods are omitted. Shouldn't be very hard to add though.

I'll leave that as an exercise for you :-)


Comment by: Dean (8-1-2008 19:59:35) deeplink to this comment

Great piece of kit. Infinitely useful when trying to track down tricky properties.


Comment by: Hal (16-2-2008 17:04:15) deeplink to this comment

Is there a virus in ObjectLister 003.xls

??

While running control-alt-O after selecting your demo chart, and auto expanding to the maximum depth (5?) I found the code after a couple of minutes elicited symptoms of a virus (?)that was trapped by Outlook warning me that a program was trying to read the address book.


Comment by: Jan karel Pieterse (17-2-2008 03:59:48) deeplink to this comment

Hi Hal,

I just checked Objectlister 32 using Nod32:

Scanned disks, folders and files: C:\data\ObjectLister\ObjectLister 003.xls
Number of threats found: 0


Comment by: Eric (14-3-2008 15:25:40) deeplink to this comment

Excellent work, once again.

Is there an Object that corresponds to current Watches in the VBE?

If there was, I'd like to change (in my copy) "Selection" in the "Set .ObjectToList = Selection" line to whatever it would be. Of course, I could do it one-by-one, but it would be more convenient if there was a Watches object.


Comment by: Jan karel Pieterse (16-3-2008 22:13:37) deeplink to this comment

Hi Eric,

No, I don't think there is.


Comment by: Bruno (16-5-2008 12:56:08) deeplink to this comment

Hallo Jan,

a really wonderful tool - it works perfect on the Excel-sheet and helps to save a lot
of time. Many thanks for your work!

Does there exist a similar tool for the VBE-objects of a userform?


Comment by: Jan Karel Pieterse (18-5-2008 03:12:49) deeplink to this comment

Hi bruno,

No, but you do not need a separate tool. You can insert a userform in the
objectlister VBAProject with just one control (the one you want listed) and change
the routine in modMain like this:

Change this line:
        Set .ObjectToList = Selection
To:
        Set .ObjectToList = UserForm1.Controls(1)


Comment by: Bruno (18-5-2008 15:00:20) deeplink to this comment

Hello Jan,
many thanks for your help.
I have tried your instructions with the sample userform1 within your object lister
Project and changed the above mentioned line. I started "startform", but it produces
the following error:
Error -2147024809; Ungültiges Argument in Startform.Module.modMain

and the procedure stopped in the changed line.
Do you have any idea?
At the moment it would be very helpful for me, because Excel produced an error in my
program (the exit-event will not be fired anymore in my existing userforms), so i
have to build them again).
Greetings from the Allgäu
Bruno


Comment by: Jan Karel Pieterse (18-5-2008 23:58:35) deeplink to this comment

Hi Bruno,

Sorry, I did not test the code. This does work with a commandbutton called
CommandButton1 on the form called Userform1:

        Set .ObjectToList = UserForm1.CommandButton1


Comment by: Go (5-3-2009 19:17:20) deeplink to this comment

Hi..

i'm rookie in this vb things, it's very confusing. From your creation here, does it use only for charting? what about other objects and their properties? can i get the explanation of them (so it would not just a list)?

very appreciate what you've done


Comment by: Jan Karel Pieterse (6-3-2009 02:40:42) deeplink to this comment

Hi Go,

To be honest I don't think this utility is the best place to start learning VBA. Excel VBA Help is a better place to start and the object browser (F2 from the editor) is also a good resource.
Also, I'd avise you to go to the library and get yourself a good book on VBA. For beginners, the dummies series are a good start.


Comment by: Narendra (26-6-2009 01:48:19) deeplink to this comment

I see that Articles on your page are split in Steps by Step Procedures, each located on a different page.
It will be better to use a "one page per article" concept.

For browsing on a long page one can always use, tags/bookmarks & "Back to Top" at each topic end.

Just a suggestion.

Regards,
Narendra.


Comment by: Jan Karel Pieterse (26-6-2009 04:01:27) deeplink to this comment

Hi Narendra,

Thanks for your comment.
There is something to say for either method. Personally I prefer shorter pages (in general) over long pages with bookmarks. And short pages load faster.


Comment by: Mark Aldous (22-7-2009 04:12:06) deeplink to this comment

Hi,
your sample app is almost perfect for my needs, but there is one extra bit I am trying to figure out. As part of the development process of my app I want to report to a log file the names and values of properties of numerous classes. This is all working well until the class contains a collection of another class. Can you give some advice on how to get the objects from the collection and add them to log.

Below is my code for now
many thanks
Mark


Public Function GetObjectProperties_v2(ByVal Obj As Object) As String
Dim cObjAnalyser As clsAnalyseObject
Dim cFoundMember As clsFoundMember
Dim sReturn As String

sReturn = vbNullString

Set cObjAnalyser = New clsAnalyseObject
With cObjAnalyser
    Set .ObjectToList = Obj
    .Root = True
    .IgnoreParentAndApplication = True
    .IterateMembers
End With

If Not cObjAnalyser.PropsAndObjects Is Nothing Then
     For Each cFoundMember In cObjAnalyser.PropsAndObjects
        
         If cFoundMember.IsObjectOrCollection Then
            sReturn = sReturn & " <" & cFoundMember.Name & "(" & CStr(cFoundMember.TypeName) & ")" & ">"
            Debug.Print cFoundMember.Name & "(" & CStr(cFoundMember.TypeName) & ")" & ">"
            ' now I need to get child objects from the collection and report the properties for each object
            
         Else
            sReturn = sReturn & " <" & cFoundMember.Name & "=" & CStr(cFoundMember.value) & ">"
            Debug.Print vbTab & cFoundMember.Name & "=" & CStr(cFoundMember.value) & ">"
         End If
     Next
End If
    
End Function


Comment by: Jan Karel Pieterse (22-7-2009 05:17:38) deeplink to this comment

Hi Mark,

Not sure if this will work, but you might try recursing the function and adding an optional argument which adds some text if the function has been used recursively:

Public Function GetObjectProperties_v2(ByVal Obj As Object, Optional sText2Add As String = "") As String
    Dim cObjAnalyser As clsAnalyseObject
    Dim cFoundMember As clsFoundMember
    Dim sReturn As String

    sReturn = vbNullString

    Set cObjAnalyser = New clsAnalyseObject
    With cObjAnalyser
        Set .ObjectToList = Obj
        .Root = True
        .IgnoreParentAndApplication = True
        .IterateMembers
    End With

    If Not cObjAnalyser.PropsAndObjects Is Nothing Then
        For Each cFoundMember In cObjAnalyser.PropsAndObjects

            If cFoundMember.IsObjectOrCollection Then
                sReturn = sReturn & " <" & cFoundMember.Name & "(" & CStr(cFoundMember.TypeName) & ")" & ">"
                Debug.Print cFoundMember.Name & "(" & CStr(cFoundMember.TypeName) & ")" & ">"
                If cFoundMember Is Collection Then    '<-----please check, this may be wrong!
                    GetObjectProperties_v2 cFoundMember, sText2Add & " " & cFoundMember.Name & ":"
                End If
                ' now I need to get child objects from the collection
                ' and report the properties for each object

            Else
                sReturn = sReturn & " <" & cFoundMember.Name & "=" & CStr(cFoundMember.Value) & ">"
                Debug.Print vbTab & cFoundMember.Name & "=" & CStr(cFoundMember.Value) & ">"
            End If
        Next
    End If

End Function


Comment by: Mark Aldous (22-7-2009 06:15:39) deeplink to this comment

Hi Jan,
thanks for the reply.

I changed your class (clsAnalyseObject) so that it returned "_Collection" for the type name (cFoundMember.TypeName = mMember.ReturnType.TypeInfo.Name).

Unfortunately when I then tried to call it recursively it was sending through the cFoundMember object not the child object of the collection.

A simple example of what I am trying to read is as follows.

objClass1
propName
colChildren
objClass2
    propId
objClass2
    PropId

For now I am going to call the objects in the child collections through type specific subs. I will try to investigate further at a later date and let you know of any progress.

many thanks
Mark


Comment by: Stephen (4-8-2009 07:53:16) deeplink to this comment

What are the prerequsities for this to run? I had it running on Windows XP SP3 but after I reimaged my machine it no longer works. I receive the a compile error, "Can't find project or library" at the subroutine, "Private Sub AddObjectToTree(oObj As Object, nNodeToAdd2 As MSComctlLib.Node, bRoot As Boolean, IgnoreParentAndApp As Boolean)".


Comment by: Jan Karel Pieterse (7-9-2009 08:59:55) deeplink to this comment

Hi Stephen,

See the "What does it do" section for instructions on what you need to make it work.


Comment by: prasuraRaprit (9-4-2011 12:51:55) deeplink to this comment

Use the Move tool (V) to move it off into the bottom-left corner.


Comment by: Rob Manner (24-5-2012 15:17:12) deeplink to this comment

Jan,

I am fascinated by this Object Browser, but can't get it to work in Excel 2010 with Windows 7. I have installed DLL and all, but wanted to check with you first before providing error messages etc., as it looks like there have not been any comments in a long while. Perhaps the browser is no longer maintained.

Many thanks,

Rob


Comment by: Jan Karel Pieterse (25-5-2012 01:59:45) deeplink to this comment

Hi Michael,

The site is still very much alive, it is just that this particular page isn't commmented on much.

I wouldn't know why the tool doesn't work for you, please send me a direct email with some screenshots, so we can have a look.


Comment by: Walter, Rauschenberger (29-5-2012 18:54:53) deeplink to this comment

Hi Michael,

I was looking for pretty much the same but a bit simplier so that I can use it directly in my project for analysing one specific object on a user form. I am wondering how I can achieve this with your solution. I.e. the output (property and value) with Debug.Print would be the means of choice.
Do you see any chance to change yor solution so that it works without the userform and it does not write the result to a worksheet?

Best regards
Walter


Comment by: Jan Karel Pieterse (30-5-2012 07:01:48) deeplink to this comment

Hi Walter,

If you look at the sub called "AddObject2Tree" you can see how the class module that handles the listing of an object is put to use. You can easily copy out this sub to a normal module and adjust it so it lists them in the immediate pane.


Comment by: Jan Karel Pieterse (30-5-2012 07:07:26) deeplink to this comment

Hi Walter,

If you look at the sub called "AddObject2Tree" you can see how the class module that handles the listing of an object is put to use. You can easily copy out this sub to a normal module and adjust it so it lists them in the immediate pane.


Comment by: juwen (7-6-2012 11:02:22) deeplink to this comment

Hi,All

My download file in this:
https://jkp-ads.com/downloadscript.asp?filename=Objectlister.zip
the tlbinf32.dll be registered with windows is successfully.

open the ObjectList 003.xls and hit ctrl+alt+o have show Run-time error:'13' Type Mismatch”

office 2010 in windows 7 to run the ObjectList 003.xls file


Comment by: Jan Karel Pieterse (7-6-2012 14:13:23) deeplink to this comment

Hi Juwen,

Two questions:

1. Which object was selected when you pressed the shortcut key?

2. Which line of cod eis highlighted if you click Debug?


Comment by: juwen (8-6-2012 02:48:27) deeplink to this comment

Hi,Jan

How to select an object?

Can you tell my how to use ObjectList 003.xls?


Comment by: Jan Karel Pieterse (8-6-2012 12:00:04) deeplink to this comment

Hi Juwen,

You select an object by just clicking on it in Excel. Then use the short-cut key menitoned in the tool.
Of course you have to download and register the tlbinf32.dll first, like I described above.


Comment by: juwen (9-6-2012 03:52:53) deeplink to this comment

Hi Jan,

1. I don't know which object I have to select.
Can you give me a specific example, please?

2. When I click Debug,the line of codeis highlighted is
"Set vReturn = tliApp.InvokeHook(ObjectToList, mMember.MemberId, INVOKE_PROPERTYGET)" in sub IterateMembers


Comment by: Jan Karel Pieterse (9-6-2012 20:58:16) deeplink to this comment

Hi Juwen,

You select the object (in Excel) from which you want to show the properties.


Comment by: Young7 (6-2-2013 04:22:06) deeplink to this comment

Thank you very much for this tool!
I know the tool is set up to work on visible objects, but I modified it to work with other (invisible) objects.

For example, let’s say I set “test” to “Internetexplorer.application”… I can send that object to your tool and it shows me the properties. Very cool!

You have me wondering if I can use this in VB6 also. This tool displays needed information in a very useful format.

I just changed your “StartForm” routine to accept an object. I also changed the “Set.objectToList=selection” to set.objecttolist=obj (the object I send it).

Excellent work!


Comment by: Joe Anderson (22-6-2013 02:07:53) deeplink to this comment

I used your ObjectLister extensively with Windows Vista. I now have Windows 7 with Excel 2010 and cannot get ObjectLister to work. I get a compile error: "Method or data member not found" on this line of the Sub StartForm:

    

.trvObjProps.SetFocus


Have tried lots of different things, un-/re-register DLL, etc. but am stumped.

Yours is a great tool, which I hope to continue to use. I would be grateful for any advice.

Joe


Comment by: Jan Karel Pieterse (24-6-2013 13:38:26) deeplink to this comment

Hi Joe,

Hard to say what's wrong, most likely the dll has not been properly registered. You may have to also change the references in the VBA project of the Excel demo file I created to make sure it points to the installed dll.
I expect you'll have to run the registration as an administrator to make it "stick".


Comment by: Gomel (10-7-2013 22:01:53) deeplink to this comment

Hello, do you have same project for powerpoint 2010 64bit?
thanks


Comment by: Jan Karel Pieterse (11-7-2013 21:18:52) deeplink to this comment

Hi Gomel,

Not needed. You can add a reference to the Powerpoint object model in Excel VBA and then set an object variable to the object you want to look at. But you also need to start PPT form Excel VBA and make sure that object in question is in the current presentation, so you can actually set the object variable to that item.


Comment by: PJ in FL (17-3-2014 16:04:25) deeplink to this comment

Just a note to say I had difficulty downloading the DLL from the link provided.

However, the file is included in the COM Add-In Installer package downloadable from Chip Pearson's "Creating A COM Add-In In Visual Basic 6" page, located at this link address: http://www.cpearson.com/excel/ComAddInInVB6.htm

Personally, I cringe when I need to download a DLL or other active component from a location I don't know, so finding the file on Chip's site was a welcome relief!


Comment by: George Skelton (25-5-2014 16:56:12) deeplink to this comment

Hi, I'm trying to get this working with 64-bit Excel on Windows 7 Excel 2010. I have tlbinf32.dll saved in C:\Windows\System32, I run regsvr32 from there and get "DllRegisterServer in TLBINF32.DLL succeeded". However when I try to add the Reference in VBA, I browse, select the dll and click open but it won't appear in the Available References list with a checkmark (but there is no error message).

If on the other hand I put tlbinf32.dl in C:\Windows\SysWOW64 and register it there, then I can add the reference but when I try to use it I get Run-time error '429': ActiveX component can't create object


Comment by: Jan Karel Pieterse (25-5-2014 17:00:20) deeplink to this comment

Hi John,

The tlbinf32.dll is 32 bit, which means it will not work with 64 bit Office I'm afraid.


Comment by: Lisa Green (2-4-2015 16:48:03) deeplink to this comment

Hi Jan Karel,

I'm trying to use this to show a UserForms properties.

Is that possible please?

TIA
Lisa


Comment by: Jan Karel Pieterse (3-4-2015 16:23:50) deeplink to this comment

Hi Lisa,

Odd enough I cannot get it to list properties and methods of a userform. I tried:

        Set .ObjectToList = ThisWorkbook.VBProject.VBComponents("ufObjBrowser")


to no avail.

This also does not really give anything helpful:

    Dim uf As ufObjBrowser
    Set uf = New ufObjBrowser
'other code
        Set .ObjectToList = uf


However, as soon as I pass a control I get the associated properties:

    Dim uf As ufObjBrowser
    Set uf = New ufObjBrowser
'other code
        Set .ObjectToList = uf.cmbClose


Comment by: Lisa Green (3-4-2015 18:37:51) deeplink to this comment

Thanks for trying Jan Karel...

Did you get the properties for the userform or the command button?

My aim is to get a list of built in events and then use your performance code in each to log performance and to tell which events fire when.

Lisa


Comment by: Jan Karel Pieterse (3-4-2015 19:25:15) deeplink to this comment

Hi Lisa,

No just the control properties. As far as I recall, the object lister ignores events.


Comment by: Lisa Green (3-4-2015 22:28:28) deeplink to this comment

I'm wondering if it's a problem with "windows"... AFAIK an object like a command button is actually a window while a userform is contained within a window... and no... I'm not sure about what I'm saying!!! :-)

Shame about not listing events... Googling and following links for a loooooooong time is't helping.. :-( I've managed to get lists of events from various sites but some of the lists miss some events that I know exist and some include events I know... I think I know.. are spurious.

It seems the best way so far is to go to the VBE and womanually write down the events from a drop down box!!!

It's an old story I think Jan Karel... They're somewhere ... otherwise the listbox would be up the spout... ut where!!???

Lisa


Comment by: Jan Karel Pieterse (5-4-2015 15:04:46) deeplink to this comment

Hi Lisa,

I'm afraid that is the only way I see right now.


Comment by: shg (11-11-2015 20:47:39) deeplink to this comment

Jan Karel,

After copying the dll, when I run regsvr32 C:\Windows\System32\TLBINF32.DLL, I get

The module "C:\Windows\System32\TLBINF32.DLL" failed to load. Make sure the binary is stored at the specified path [it is] ... The specified module could not be found."

W7 64 bit, Excel 2010 32 bit.

Is it obvious what I'm fat-fingering?


Comment by: Jan Karel Pieterse (12-11-2015 11:03:50) deeplink to this comment

Hi shg,

To be honest, I haven't touched this in a long time and I forgot how I set this up on my system! The file itself is both in my Documents folder somewhere and in the C:\Windows\SysWOW64 folder and it works as expected so I guess I somehow managed to register the dll successfully.
Perhaps registering it from the C:\Windows\SysWOW64 folder should work (remember to run cmd as an admin!)


Comment by: shg (12-11-2015 16:58:37) deeplink to this comment

I will try that, thank you.


Comment by: David Miley (1-6-2019 17:46:00) deeplink to this comment

Will this work on custom objects (i.e. classes that I have created)?


Comment by: Jan Karel Pieterse (3-6-2019 09:38:00) deeplink to this comment

Hi David,

I don't know, perhaps you should just try?


Comment by: Romulus Milea (26-3-2024 12:49:00) deeplink to this comment

Hello Jan,

Can this tool be used to generate a huge list in Excel, for all libraries, for all classes, and also for all members of each class, with no connection to any project ?

With other words, can this tool dump all objects from Excel Object Browser, in a form of a list with 4 columns: Library, Class, Member and Type (Function, Sub, Enum, Property, Constant, etc.) ?

I need this list for a personal project. I have created a thread on www.MrExcel.com forum, and RoryA suggested this WebPage, of yours :-))).

Thank you !


Comment by: Jan Karel Pieterse (26-3-2024 16:03:00) deeplink to this comment

Hi Romulus,

Theoretically, yes. I built the tool to get a list of all properties and methods of a given object. If you let it do the application, it will take a huge amount of time to complete.


Comment by: Romulus Milea (26-3-2024 16:11:00) deeplink to this comment

Hello again,

Thank you ! Can you maybe suggest how can I step by step configure/use this tool to generate that list of all possible components of entire Excel application ? I can wait for it, to complete everything :-))).

Thank you once again !


Comment by: Jan Karel Pieterse (26-3-2024 16:27:00) deeplink to this comment

Hi Romulus,

I think you will find this workbook isn't necessarily ready to do a thing like that. I used to to list all properties and methods of a specific object, doing the entire application is not something it can do reliably I suspect.


Comment by: Romulus Milea (27-3-2024 07:51:00) deeplink to this comment

Thank you for your answer. Please help me to find out how this shall be done step by step, and I will give it a try.


Comment by: Jan Karel Pieterse (27-3-2024 16:27:00) deeplink to this comment

Hi Romulus,

Please get hold of me through email (address at the bottom of this page)


Have a question, comment or suggestion? Then please use this form.

If your question is not directly related to this web page, but rather a more general "How do I do this" Excel question, then I advise you to ask your question here: www.eileenslounge.com.




To post VBA code in your comment, use [VB] tags, like this: [VB]Code goes here[/VB].