SUMMARY
In Microsoft Excel, to determine which DLLs are registered, you can do
either of the following:
- Click "About Microsoft Excel" on the Help menu to display a list of
all DLLs currently registered on your system.
NOTE: Microsoft System Info is a Setup option. If it is not available
on your system, rerun Setup, click Complete/Custom, select the Tools
option, and select the System Information Checking option.
-or-
- Use a Visual Basic statement to return a list of all the DLLs and
XLLs that provide functions registered in Microsoft Excel.
Using Microsoft System Info to Display a List of Registered DLLs
- On the Help menu, click About Microsoft Excel.
- Click System Info.
- In the list of categories, click System DLLs.
The Microsoft System Info dialog box displays a list of all registered
DLLs, indicating the DLL file name, version, date, size in bytes, and
displays the word "Yes" next to each DLL that is currently in memory.
Using a Visual Basic Procedure
Microsoft provides programming examples for illustration only, without warranty either expressed or implied. This includes, but is not limited to, the implied warranties of merchantability or fitness for a particular purpose. This article assumes that you are familiar with the programming language that is being demonstrated and with the tools that are used to create and to debug procedures. Microsoft support engineers can help explain the functionality of a particular procedure, but they will not modify these examples to provide added functionality or construct procedures to meet your specific requirements.
You can use the RegisteredFunctions property to return an array of every
Microsoft Excel function that is provided by DLLs and other code
resources, along with the name of the associated file.
The following sample macro creates a three-column array of all registered
functions in Microsoft Excel, where column 1 displays the name of the DLL
or code resource; column 2 displays the name of the procedure in the DLL
or code resource; and column 3 displays strings specifying the data types
of the return values, and the number and data types of the arguments:
Sub GenerateDLLList()
theArray = Application.RegisteredFunctions
If IsNull(theArray) Then
MsgBox "No registered functions"
Else
Cells(1, 1).Value = "DLL Name"
Cells(1, 2).Value = "Procedure Name"
Cells(1, 3).Value = "Data Type Returned"
For i = 1 To UBound(theArray)
For j = 1 To 3
Cells(i + 1, j).Formula = theArray(i, j)
Next j
Next i
End If
End Sub
If you need to generate a list of all DLLs on your system, not just the
ones used by Microsoft Excel, use the following code to export the System
Info information (see above) to a text file named Msinfo.txt, saved to
your \Windows folder:
Application.SendKeys "%h"
Application.SendKeys "a"
Application.SendKeys "%s"
Application.SendKeys "%s"
Application.SendKeys "{ESC}"
Application.SendKeys "{ESC}"
Application.SendKeys "{ESC}"
After saving Msinfo.txt, your macro can then open the file and access the
DLL registration information contained in Column A, under the System DLLs
heading.