Schreibt die VBA-Referenzen als Liste in lesbarer Form
Download udf_printref.bas (V-1.1.0)
Ein Beispiel aus einem aktuellen Projekt. Ausgeführt im Direktfenster
printref Name | Description | FullPath -------------------|-------------------------------------------------------------|-------------------------------------------------------------------------- VBA | Visual Basic For Applications | C:\PROGRA~2\COMMON~1\MICROS~1\VBA\VBA7\VBE7.DLL Access | Microsoft Access 14.0 Object Library | C:\Program Files (x86)\Microsoft Office\Office14\MSACC.OLB DAO | Microsoft Office 14.0 Access database engine Object Library | C:\Program Files (x86)\Common Files\Microsoft Shared\OFFICE14\ACEDAO.DLL VBIDE | Microsoft Visual Basic for Applications Extensibility 5.3 | C:\Program Files (x86)\Common Files\Microsoft Shared\VBA\VBA6\VBE6EXT.OLB Office | Microsoft Office 14.0 Object Library | C:\Program Files (x86)\Common Files\Microsoft Shared\OFFICE14\MSO.DLL VBScript_RegExp_55 | Microsoft VBScript Regular Expressions 5.5 | C:\Windows\SysWOW64\vbscript.dll\3 Excel | Microsoft Excel 14.0 Object Library | C:\Program Files (x86)\Microsoft Office\Office14\EXCEL.EXE MSComCtl2 | Microsoft Windows Common Controls-2 6.0 (SP6) | c:\windows\SysWow64\mscomct2.ocx MSComctlLib | Microsoft Windows Common Controls 6.0 (SP6) | C:\Windows\SysWOW64\MSCOMCTL.OCX ADODB | Microsoft ActiveX Data Objects 6.1 Library | C:\Program Files (x86)\Common Files\System\ado\msado15.dll stdole | OLE Automation | C:\Windows\SysWOW64\stdole2.tlb Scripting | Microsoft Scripting Runtime | C:\Windows\SysWOW64\scrrun.dll MSXML2 | Microsoft XML, v6.0 | C:\Windows\System32\msxml6.dll MSScriptControl | Microsoft Script Control 1.0 | C:\Windows\SysWOW64\msscript.ocx
Attribute VB_Name = "udf_printRef" '------------------------------------------------------------------------------- 'File : udf_printRef.bas ' Copyright mpl by ERB software ' All rights reserved ' http://wiki.yaslaw.info/dokuwiki/doku.php/vba/access/functions/printref 'Environment : VBA 2010 + 'Version : 1.1.0 'Name : udf_printRef 'Author : Stefan Erb (ERS) 'History : 02.02.2016 - ERS - Creation ' : 10.02.2017 - ERS - Soweit angepasst, dass keine weiteren Refernzen gesetzt werden müssen '------------------------------------------------------------------------------- Option Explicit '------------------------------------------------------------------------------- ' !!! WICHTIG !!! ' Diese Funktion verwendet die Funktion printList() http://wiki.yaslaw.info/doku.php/vba/functions/printlist ' Diese Funktion muss also auc im Projekt vorhanden sein '------------------------------------------------------------------------------- 'MS Applikation in der die Klasse eingesetzt wird. Es gibt einige Spezifische Dinge #Const C_ACCESS = "ACCESS" #Const C_EXCEL = "EXCEL" 'Auswahl #Const ms_product = C_ACCESS '/** ' * Diese Methode schreibt die aktuellen Referenzen von MS Access VBA in den Direktbereich ' * @param enuPrintListOutputMethode ' * Art der Rückgabe: Standart ist das Direktfenster. Alternativ kann man auch als Rückgabewert der ' * Funktion oder in den Zwieschnepseicher des PCs schreiben. ' * Die Auswahlen lassen sich auch kombinieren: prConsole+prClipboard ' * @retrun String Resultat oder Fehlermeldung ' */ Public Function printRef(Optional ByVal iReturn As enuPrintListOutputMethode = prListConsole) As String Dim vbProj As Object 'VBProject #If ms_product = C_ACCESS Then Set vbProj = application.VBE.VBProjects(1) #ElseIf ms_product = C_EXCEL Then Set vbProj = ThisWorkbook.VBProject #Else Err.Raise vbObjectError, "MS Product is not Access and not Excel" #End If 'Header definieren Dim hdr() As Variant: hdr = Array("Name", "Description", "FullPath") 'Die Referenzen auswerten Dim refs As Object: Set refs = vbProj.References 'VBIDE.References Dim data() As Variant: ReDim data(1 To refs.count) Dim refNr As Long: For refNr = 1 To refs.count data(refNr) = Array(refs(refNr).Name, refs(refNr).Description, refs(refNr).FullPath) Next refNr printRef = CStr(printList(data, hdr, iReturn)) End Function