Megosztás a következőn keresztül:


Makrók nevének lekérése Excel-munkafüzetből a Visual Basic 6.0 használatával

Összefoglalás

Ez a lépésenkénti cikk azt ismerteti, hogy a Visual Basic 6.0 használatával hogyan kérhetők le a makrók nevei egy Excel-munkafüzetből.

Követelmények

A következő elemek ismertetik a szükséges hardvereket, szoftvereket, hálózati infrastruktúrát, készségeket és ismereteket, valamint szervizcsomagokat:

  • Excel 2000, Excel 2002, Office Excel 2003 vagy Office Excel 2007
  • Excel-makrók
  • Visual Basic for Applications

Két makrót tartalmazó Excel-munkafüzet létrehozása

  1. Indítsa el az Excelt. Létrejön egy új üres munkafüzet.

  2. Nyomja le az ALT+F11 billentyűkombinációt a Visual Basic Editor elindításához.

  3. A Project Explorerben kattintson duplán a ThisWorkbook elemre a kódszerkesztő elindításához.

  4. Illessze be a következő kódot két egyszerű makróhoz a kódszerkesztőben:

    Option Explicit
    
    Sub Macro_A()
        MsgBox "This is Macro A"
    End Sub
    
    Sub Macro_B()
        MsgBox "This is Macro B"
    End Sub
    
  5. Zárja be a Visual Basic Editort, és térjen vissza a számolótábla nézethez.

  6. Az Excel 2003-ban és az Excel korábbi verzióiban mentse a munkafüzetet C:\Abc.xls.

    Az Excel 2007-ben mentse a munkafüzetet makróbarát munkafüzetként C:\Abc.xlsm néven.

  7. Zárja be a munkafüzetet, és lépjen ki az Excelből.

Visual Basic-alkalmazás létrehozása a munkafüzet makróinak listázásához

  1. A Visual Basic 6.0-ban hozzon létre egy új Standard EXE-projektet.

  2. A Projektmenüben kattintson a Hivatkozások elemre. A Hivatkozások párbeszédpanelen jelölje ki a következő hivatkozásokat:

    • Microsoft Visual Basic for Applications Bővíthetőség 5.3
    • Microsoft Excel 2000 esetén: Microsoft Excel 9.0 objektumtár
    • Microsoft Excel 2002 esetén: Microsoft Excel 10.0 objektumtár
    • Microsoft Office Excel 2003 esetén: Microsoft Excel 11.0 objektumtár
    • Microsoft Office Excel 2007 esetén: Microsoft Excel 12.0 objektumtár
  3. Kattintson az OK gombra.

  4. Gomb hozzáadása az űrlaphoz. A gomb alapértelmezett neve Command1.

  5. Lista hozzáadása az űrlaphoz. A listamező alapértelmezett neve List1.

  6. Kattintási eseménykezelő eljárás definiálása a gombhoz. Az alábbi kóddal jelenítheti meg a C:\Abc.xls definiált makrókkal kapcsolatos információkat:

    Private Sub Command1_Click()
        ' Declare variables to access the Excel workbook.
        Dim objXLApp As Excel.Application
        Dim objXLWorkbooks As Excel.Workbooks
        Dim objXLABC As Excel.Workbook
    
    ' Declare variables to access the macros in the workbook.
        Dim objProject As VBIDE.VBProject
        Dim objComponent As VBIDE.VBComponent
        Dim objCode As VBIDE.CodeModule
    
    ' Declare other miscellaneous variables.
        Dim iLine As Integer
        Dim sProcName As String
        Dim pk As vbext_ProcKind
    
    ' Open Excel, and open the workbook.
        Set objXLApp = New Excel.Application
        Set objXLWorkbooks = objXLApp.Workbooks    
        Set objXLABC = objXLWorkbooks.Open("C:\ABC.XLS")
    
    ' Empty the list box.
        List1.Clear
    
    ' Get the project details in the workbook.
        Set objProject = objXLABC.VBProject
    
    ' Iterate through each component in the project.
        For Each objComponent In objProject.VBComponents
    
    ' Find the code module for the project.
            Set objCode = objComponent.CodeModule
    
    ' Scan through the code module, looking for procedures.
            iLine = 1
            Do While iLine < objCode.CountOfLines
                sProcName = objCode.ProcOfLine(iLine, pk)
                If sProcName <> "" Then
                    ' Found a procedure. Display its details, and then skip 
                    ' to the end of the procedure.
                    List1.AddItem objComponent.Name & vbTab & sProcName
                    iLine = iLine + objCode.ProcCountLines(sProcName, pk)
                Else
                    ' This line has no procedure, so go to the next line.
                    iLine = iLine + 1
                End If
            Loop
            Set objCode = Nothing
            Set objComponent = Nothing
        Next
    
    Set objProject = Nothing
    
    ' Clean up and exit.
        objXLABC.Close
        objXLApp.Quit
    End Sub
    
    

A minta tesztelése

  1. Hozza létre és futtassa az alkalmazást.
  2. Kattintson a parancsgombra. A listában az összes makró és az azokat tartalmazó munkafüzet neve látható a következőképpen: ThisWorkbook Macro_A ThisWorkbook Macro_B

Hibaelhárítás

Az Excel 2002, az Excel 2003 és az Excel 2007 fokozott biztonsági rendelkezései miatt az alábbi hibaüzenet jelenhet meg a Visual Basic programtól az Excel 2002, az Excel 2003 vagy az Excel 2007 használatakor: A Visual Basic Project programozott elérése nem megbízható.

A problémával és a megoldásával kapcsolatos további információkért kattintson a következő cikkszámra a cikk microsoftos tudásbázisban való megtekintéséhez:

282830 PRB: Az Office XP VBA-projekt programozott hozzáférése megtagadva

Hivatkozások

További információt a Microsoft Developer Network (MSDN) alábbi webhelyén talál:

Microsoft Office-fejlesztés a Visual Studióval

További információkért tekintse meg a tudásbázis következő cikkeit:

219905 VBA-makró dinamikus hozzáadása és futtatása a Visual Basicből