버전 제어에 넣을 다중 Excel 문서에서 VBA 코드 내보내기
많은 Excel 문서에서 VBA 코드를 내보내고 하위 버전 저장소에 코드를 추가할 수 있는 방법을 아는 사람이 있습니까?각 문서를 수동으로 열고 코드를 내보낼 필요가 없습니다.
이를 위한 툴은 다음과 같습니다.
http://www.pretentiousname.com/excel_extractvba/index.html
엑셀을 자동화하는 VBS 스크립트입니다.필요에 따라 수정할 수 있습니다. 완벽하지 않습니다(경고는 웹 페이지 참조).
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
-아담
지난 몇 년 동안 코드를 내보내고 저장하는 데 성공했습니다.2007년 Office 2003에서 작동하는 것을 확인할 수 있습니다.2000년에도 작동하는 것 같습니다.
http://www.codeproject.com/KB/office/SourceTools.aspx
Excel VBA 개발을 많이 하면서 (컨텍스트 메뉴에서) 변경할 때마다 각 파일(모듈 등)의 텍스트 형식으로 내보내는 습관이 생겼습니다.저는 그 파일들을 XLA 바이너리와 함께 소스 제어로 유지했습니다.이것은 저에게 꽤 효과적이었고 외부 도구가 필요하지 않았습니다.
SourceTools는 일단 작동하고 실행하면 좋지만, 많은 Excel 워크북에서 내보내야 하는 경우 각 워크북을 열고 내보내는 것이 조금 지루할 수 있습니다.
VbaDiff(disclaimer: my product)는 여러 Excel 파일을 읽고 VBA 코드를 추출할 수 있는 API를 가지고 있습니다.예를 들어, 체크인할 준비가 된 파일로 코드를 내보내도록 쉽게 조정할 수 있습니다.SharpSvn을 잘 사용한다면, 이동하면서 저장소에 코드를 추가할 수도 있습니다!
언급URL : https://stackoverflow.com/questions/608872/exporting-vba-code-from-multiple-excel-documents-to-put-into-version-control
'prosource' 카테고리의 다른 글
오류: 1067(42000):'created_at'에 대한 기본값이 잘못되었습니다. (0) | 2023.06.27 |
---|---|
각도: 매트 양식 필드에는 매트 양식 필드 컨트롤이 포함되어야 합니다. (0) | 2023.06.22 |
ggplot: 면 그림 사이의 간격을 늘리는 방법은 무엇입니까? (0) | 2023.06.22 |
Mongodb 중복 항목 방지 (0) | 2023.06.22 |
vuex 모듈에서 루트 상태를 기반으로 상수를 전역적으로 정의하는 방법 (0) | 2023.06.22 |