Вы находитесь на странице: 1из 4

Cmo recuperar los nombres de macros de

un libro de Excel utilizando Visual Basic


6.0
Id. de artculo: 315731 - Ver los productos a los que se aplica este artculo
Advertencia: Artculo de Traduccin Automtica, vea la exencin de responsabilidad.
Haga clic aqu para ver en paralelo el artculo de traduccin automtica y el artculo
original en ingls.
Expandir todo | Contraer todo
En esta pgina
Resumen
o Requisitos
o Cree un libro de Excel con dos macros
o Crear una aplicacin Visual Basic para enumerar las macros del
libro
o Probar el ejemplo
o Solucin de problemas
Referencias
Propiedades
Enviar comentarios
Resumen
En este artculo paso a paso se describe cmo utilizar Visual Basic 6.0 para recuperar los
nombres de macros de un libro de Excel.
Requisitos
Los elementos siguientes describen el hardware, el software, la infraestructura de red, las
capacidades y el conocimiento, y los Service Pack que se necesitan:
Excel 2000, Excel 2002, Office Excel 2003 o en Office Excel 2007
Macros de Excel
Visual Basic para aplicaciones
Cree un libro de Excel con dos macros
1. Inicie Excel. Se crea un nuevo libro en blanco.
2. Presione ALT+F11 para iniciar el Editor de Visual Basic.
3. En el Explorador de proyectos, haga doble clic en ThisWorkbook para
iniciar el editor de cdigo.
4. Pegue el siguiente cdigo para dos macros sencillas en el editor de cdigo:
5. Option Explicit
6.
7. Sub Macro_A()
8. MsgBox "This is Macro A"
9. End Sub
10.
11. Sub Macro_B()
12. MsgBox "This is Macro B"
13. End Sub

14. Cierre el Editor de Visual Basic y vuelva a la vista Hoja de clculo.
15. En Excel 2003 y en versiones anteriores de Excel, guarde el libro como
C:\Abc.xls.

En Excel 2007, guarde el libro como libro habilitado para macros que se
denomina C:\Abc.xlsm.
16. Cierre el libro y salga de Excel.
Crear una aplicacin Visual Basic para enumerar las macros del libro
1. En Visual Basic 6.0, cree un EXE estndar nuevo proyecto.
2. En el men proyecto , haga clic en referencias . En el cuadro de dilogo
referencias , seleccione las referencias siguientes:
o Microsoft Visual Basic for Applications Extensibility 5.3
o Para Microsoft Excel 2000:
Microsoft Excel 9.0 Object Library
o Para Microsoft Excel 2002:
Microsoft Excel 10.0 Object Library
o Para Microsoft Office Excel 2003:
Microsoft Excel 11.0 Object Library
o Para Microsoft Office Excel 2007:
Microsoft Excel 12.0 Object Library
3. Haga clic en Aceptar .
4. Agregue un botn al formulario. El botn tiene el valor predeterminado
nombre Command1.
5. Agregue un cuadro de lista al formulario. El cuadro de lista tiene el nombre
predeterminado List1.
6. Definir un procedimiento de controlador de evento haga clic en para el botn.
Utilice el siguiente cdigo para este procedimiento, para mostrar informacin
sobre las macros que se definen en C:\Abc.xls:
7. Private Sub Command1_Click()
8. ' Declare variables to access the Excel workbook.
9. Dim objXLApp As Excel.Application
10. Dim objXLWorkbooks As Excel.Workbooks
11. Dim objXLABC As Excel.Workbook
12.
13. ' Declare variables to access the macros in the
workbook.
14. Dim objProject As VBIDE.VBProject
15. Dim objComponent As VBIDE.VBComponent
16. Dim objCode As VBIDE.CodeModule
17.
18. ' Declare other miscellaneous variables.
19. Dim iLine As Integer
20. Dim sProcName As String
21. Dim pk As vbext_ProcKind
22.
23. ' Open Excel, and open the workbook.
24. Set objXLApp = New Excel.Application
25. Set objXLWorkbooks = objXLApp.Workbooks
26. Set objXLABC = objXLWorkbooks.Open("C:\ABC.XLS")
27.
28. ' Empty the list box.
29. List1.Clear
30.
31. ' Get the project details in the workbook.
32. Set objProject = objXLABC.VBProject
33.
34. ' Iterate through each component in the project.
35. For Each objComponent In objProject.VBComponents
36.
37. ' Find the code module for the project.
38. Set objCode = objComponent.CodeModule
39.
40. ' Scan through the code module, looking for
procedures.
41. iLine = 1
42. Do While iLine < objCode.CountOfLines
43. sProcName = objCode.ProcOfLine(iLine, pk)
44. If sProcName <> "" Then
45. ' Found a procedure. Display its details,
and then skip
46. ' to the end of the procedure.
47. List1.AddItem objComponent.Name & vbTab &
sProcName
48. iLine = iLine +
objCode.ProcCountLines(sProcName, pk)
49. Else
50. ' This line has no procedure, so go to the
next line.
51. iLine = iLine + 1
52. End If
53. Loop
54. Set objCode = Nothing
55. Set objComponent = Nothing
56. Next
57.
58. Set objProject = Nothing
59.
60. ' Clean up and exit.
61. objXLABC.Close
62. objXLApp.Quit
63. End Sub

Probar el ejemplo
1. Genere y ejecute la aplicacin.
2. Haga clic en el botn de comando. El cuadro de lista muestra los nombres de
todas las macros y el libro que contiene, como sigue:
3. ThisWorkbook Macro_A
4. ThisWorkbook Macro_B

Solucin de problemas
Debido de disposiciones de seguridad mejorada en Excel 2002, Excel 2003 y Excel 2007,
puede aparecer el siguiente mensaje de error desde el programa de Visual Basic cuando
utiliza Excel 2002, Excel 2003 o Excel 2007:
Acceso mediante programacin a proyectos de Visual Basic no es de confianza.
Para obtener ms informacin acerca de este problema y cmo resolverlo, haga clic en el
nmero de artculo siguiente para verlo en Microsoft Knowledge Base:
282830
(http://support.microsoft.com/kb/282830/ )
PRB: Denegado el acceso mediante programacin al proyecto de VBA de Office XP
Volver al principio | Enviar comentarios

Вам также может понравиться