Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Podsumowanie
W tym artykule krok po kroku opisano sposób pobierania nazw makr ze skoroszytu programu Excel za pomocą programu Visual Basic 6.0.
Wymagania
Poniższe elementy opisują zalecany sprzęt, oprogramowanie, infrastrukturę sieciową, umiejętności i wiedzę oraz potrzebne dodatki Service Pack:
- Excel 2000, Excel 2002, Office Excel 2003 lub Office Excel 2007
- Makra programu Excel
- Visual Basic dla aplikacji
Tworzenie skoroszytu programu Excel z dwoma makrami
Uruchom program Excel. Zostanie utworzony nowy pusty skoroszyt.
Naciśnij klawisze ALT+F11, aby uruchomić edytor Visual Basic.
W Eksploratorze projektu kliknij dwukrotnie pozycję ThisWorkbook , aby uruchomić edytor kodu.
Wklej następujący kod dla dwóch prostych makr w edytorze kodu:
Option Explicit Sub Macro_A() MsgBox "This is Macro A" End Sub Sub Macro_B() MsgBox "This is Macro B" End Sub
Zamknij Edytor Visual Basic i wróć do widoku arkusza kalkulacyjnego.
W programie Excel 2003 i we wcześniejszych wersjach programu Excel zapisz skoroszyt jako C:\Abc.xls.
W programie Excel 2007 zapisz skoroszyt jako skoroszyt z obsługą makr o nazwie C:\Abc.xlsm.
Zamknij skoroszyt i zamknij program Excel.
Tworzenie aplikacji Visual Basic w celu wyświetlenia listy makr w skoroszycie
W programie Visual Basic 6.0 utwórz nowy projekt standardu EXE.
W menu Project (Projekt ) kliknij pozycję Odwołania. W oknie dialogowym Odwołania wybierz następujące odwołania:
- Rozszerzalność Visual Basic for Applications Microsoft 5.3
- W przypadku programu Microsoft Excel 2000: Biblioteka obiektów programu Microsoft Excel 9.0
- W przypadku programu Microsoft Excel 2002: Biblioteka obiektów programu Microsoft Excel 10.0
- W przypadku programu Microsoft Office Excel 2003: Biblioteka obiektów programu Microsoft Excel 11.0
- W przypadku programu Microsoft Office Excel 2007: Biblioteka obiektów programu Microsoft Excel 12.0
Kliknij przycisk OK.
Dodaj przycisk do formularza. Przycisk ma domyślną nazwę Command1.
Dodaj pole listy do formularza. Pole listy ma domyślną nazwę List1.
Zdefiniuj procedurę obsługi zdarzeń kliknięcia dla przycisku. Użyj następującego kodu dla tej procedury, aby wyświetlić informacje o makrach zdefiniowanych w C:\Abc.xls:
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
Testowanie przykładu
- Skompiluj i uruchom aplikację.
- Kliknij przycisk polecenia. W polu listy są wyświetlane nazwy wszystkich makr i skoroszytu, które je zawierają, w następujący sposób: ThisWorkbook Macro_A ThisWorkbook Macro_B
Rozwiązywanie problemów
Ze względu na rozszerzone zabezpieczenia w programach Excel 2002, Excel 2003 i Excel 2007 może zostać wyświetlony następujący komunikat o błędzie z programu Visual Basic podczas korzystania z programu Excel 2002, Excel 2003 lub Excel 2007: Programowy dostęp do programu Visual Basic Project nie jest zaufany.
Aby uzyskać więcej informacji na temat tego problemu i sposobu jego rozwiązania, kliknij następujący numer artykułu, aby wyświetlić artykuł w bazie wiedzy Microsoft Knowledge Base:
282830 PRB: Odmowa dostępu programowego do projektu VBA pakietu Office XP
Informacje
Aby uzyskać więcej informacji, zobacz następującą witrynę sieci Web microsoft developer network (MSDN):
Programowanie pakietu Microsoft Office przy użyciu programu Visual Studio
Aby uzyskać więcej informacji, zobacz artykuł z bazy wiedzy Knowledge Base:
219905 Jak dynamicznie dodawać i uruchamiać makro VBA z poziomu programu Visual Basic