User Tools

Site Tools


vba:functions:printref

Table of Contents

[VBA] printRef()

Schreibt die VBA-Referenzen als Liste in lesbarer Form

Version 1.1.0 - 10.02.2017

Download udf_printref.bas (V-1.1.0)

Diese Funktion verwendet die UDF [VBA] printList()

Beispiele

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                                         

Code

udf_printref.bas
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
 
vba/functions/printref.txt · Last modified: 04.12.2017 14:08:07 by yaslaw