Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Ö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
Indítsa el az Excelt. Létrejön egy új üres munkafüzet.
Nyomja le az ALT+F11 billentyűkombinációt a Visual Basic Editor elindításához.
A Project Explorerben kattintson duplán a ThisWorkbook elemre a kódszerkesztő elindításához.
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
Zárja be a Visual Basic Editort, és térjen vissza a számolótábla nézethez.
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.
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
A Visual Basic 6.0-ban hozzon létre egy új Standard EXE-projektet.
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
Kattintson az OK gombra.
Gomb hozzáadása az űrlaphoz. A gomb alapértelmezett neve Command1.
Lista hozzáadása az űrlaphoz. A listamező alapértelmezett neve List1.
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
- Hozza létre és futtassa az alkalmazást.
- 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