Determining Which DLLs Are Registered (108002)



The information in this article applies to:

  • Microsoft Excel 97 for Windows

This article was previously published under Q108002

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

  1. On the Help menu, click About Microsoft Excel.
  2. Click System Info.
  3. 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.

Modification Type:MinorLast Reviewed:10/11/2006
Keywords:kbProgramming KB108002