¿Alguien sabe una forma de exportar el código VBA desde una cantidad de documentos de Excel, para que el código pueda agregarse a un repositorio de subversión? Sin tener que abrir manualmente cada documento y exportar el código.Exportación de código VBA desde múltiples documentos de Excel para ponerlo en control de versión
Respuesta
encontrará una herramienta para esto aquí:
http://www.pretentiousname.com/excel_extractvba/index.html
Es un guión VBS que automatiza Excel. Puede modificarlo de acuerdo con sus necesidades, tenga en cuenta que no es perfecto (lea la página web para advertencias).
option explicit
Const vbext_ct_ClassModule = 2
Const vbext_ct_Document = 100
Const vbext_ct_MSForm = 3
Const vbext_ct_StdModule = 1
Main
Sub Main
Dim xl
Dim fs
Dim WBook
Dim VBComp
Dim Sfx
Dim ExportFolder
If Wscript.Arguments.Count <> 1 Then
MsgBox "As the only argument, give the FULL path to an XLS file to extract all the VBA from it."
Else
Set xl = CreateObject("Excel.Application")
Set fs = CreateObject("Scripting.FileSystemObject")
xl.Visible = true
Set WBook = xl.Workbooks.Open(Trim(wScript.Arguments(0)))
ExportFolder = WBook.Path & "\" & fs.GetBaseName(WBook.Name)
fs.CreateFolder(ExportFolder)
For Each VBComp In WBook.VBProject.VBComponents
Select Case VBComp.Type
Case vbext_ct_ClassModule, vbext_ct_Document
Sfx = ".cls"
Case vbext_ct_MSForm
Sfx = ".frm"
Case vbext_ct_StdModule
Sfx = ".bas"
Case Else
Sfx = ""
End Select
If Sfx <> "" Then
On Error Resume Next
Err.Clear
VBComp.Export ExportFolder & "\" & VBComp.Name & Sfx
If Err.Number <> 0 Then
MsgBox "Failed to export " & ExportFolder & "\" & VBComp.Name & Sfx
End If
On Error Goto 0
End If
Next
xl.Quit
End If
End Sub
-Adam
Cuando estaba haciendo un montón de desarrollo Excel VBA llegué en el hábito de exportar al formato de texto para cada archivo (módulo, etc.) cada vez que hice un cambio (de el menú contextual). Mantuve esos archivos en control de fuente junto con el binario XLA. Esto funcionó bastante bien para mí y no requirió ninguna herramienta externa.
Además, el proceso de exportación de los componentes VBA (código, formularios) se puede automatizar con algunos bacalao VBA: ver aquí en [Ron de Bruin] (https://www.rondebruin.nl/win/s9/win002.htm) y aquí [Chip Pearson] (http://www.cpearson.com/excel/vbe.aspx). Modifiqué el código de Bruin y usé una bandera en el nombre ("SHARE _...."), de modo que al recorrerlo solo exporta los archivos que quiero. – tjejojyj
He utilizado esto con éxito durante los últimos años para exportar mi código y guardarlo. Puedo confirmar que funciona en Office 2003, 2007. Supongo que funciona en 2000 también.
SourceTools es bueno una vez que esté en funcionamiento, pero si usted está necesitando de exportación de un gran número de libros de Excel, la apertura de cada uno y exportación que podrían ser un poco tedioso.
VbaDiff (descargo de responsabilidad: mi producto) tiene una API que puede leer a través de múltiples archivos de Excel y extraer el código de VBA. Hay un ejemplo de here - podría ser fácilmente adaptado para exportar el código a un archivo, listo para ser registrado. Si eres bueno con SharpSvn, ¡probablemente podrías agregar el código al repositorio sobre la marcha!
- 1. Control de fuente de módulos de código Excel VBA
- 2. Subcadena de Excel VBA
- 3. Reemplazar texto en el código VBA de archivos de Excel
- 4. pueblan valores únicos en una matriz de VBA desde Excel
- 5. Exportación de una tabla HTML a Excel desde ASP.NET MVC
- 6. Barra de progreso en VBA Excel
- 7. ¿Cómo usar el control de versiones con el código VBA?
- 8. Código de macro (VBA) mediante programación desde documentos de Word 2007
- 9. Documentación para macros VBA de Excel
- 10. Control de versión de documento
- 11. Cómo probar la unidad Código de Excel VBA
- 12. ¿Cómo puedo hacer uso de objetos .NET desde Excel VBA?
- 13. Exportación de SSRS a Excel sin encabezados
- 14. Excel VBA: ejecución de código de interrupción (no pulsando 'escape')
- 15. Abrir Google Chrome desde VBA/Excel
- 16. VBA - Generar archivo de Excel desde Access (QueryTable)
- 17. Buenas prácticas de desarrollo de Excel VBA
- 18. Documentación del código VBA para Excel Auto Complete
- 19. Errores de manejo adecuado en VBA (Excel)
- 20. ¿Cómo puedo escribir en la consola desde el código vba de Excel?
- 21. matriz en Excel VBA
- 22. ¿Cómo generar XML desde una macro de Excel VBA?
- 23. Solicitud HTTPS POST usando VBA para Excel
- 24. Formateo de documentos de Excel en Qt
- 25. OnClick en Excel VBA
- 26. Documentación y control de versión
- 27. cómo dividir una cadena con múltiples delimeters en vba excel?
- 28. control de versión para novato
- 29. Matriz de Rango en Excel VBA
- 30. Control de versiones para documentos Word
Este script de arriba está lejos de ser perfecto. Después de buscar en la web durante mucho tiempo, finalmente encontré algo que realmente funciona: http://stackoverflow.com/a/25984759/2780179 . Tiene código de importación, exportación, formato de código y más. Puede usarlo inmediatamente, sin necesidad de editar ninguno de los libros existentes. – CodeKid