Gary는 회사 외부의 누군가가 생성 한 XLS 파일을 정기적으로받습니다. 그런 다음 일부 매크로를 통합 문서로 가져온 다음 (또는 TXT 파일에서 복사) 통합 문서를 XLSM 형식으로 저장해야합니다. Gary는 일반적으로 수동으로 추가하는 매크로를 가져 오는 매크로를 실행 한 다음 적절한 형식으로 통합 문서를 저장할 수 있도록이를 자동화하는 방법이 있는지 궁금합니다.

VBProject 개체를 사용하여 자동화하는 방법이 있습니다. 외부 텍스트 파일에 기본적으로 Visual Basic 모듈이 포함 된 경우 Import 메서드를 사용하여 실제로 해당 모듈을 가져올 수 있습니다. Visual Basic Editor의 가져 오기 기능을 사용하는 것과 똑같이 작동합니다. 다음은 사용할 수있는 코드의 예입니다.

Sub AutomateImport()

Const ModulePath As String = "C:\temp\code.txt"



Dim thisTarget As Workbook     Dim thisName As String

Set thisTarget = ActiveWorkbook     thisName = thisTarget.Name

' Save as XLSM file (neceassry before importing module)

ActiveWorkbook.SaveAs thisName & ".xlsm", _       FileFormat:=xlOpenXMLWorkbookMacroEnabled

' Import the VBA code required     thisTarget.VBProject.VBComponents.Import ModulePath

' Save the workbook     ActiveWorkbook.Save End Sub

코드는 실제로 가져 오기를 수행하기 전에 활성 통합 문서를 XLSM 파일로 저장합니다. 매크로를 지원하지 않는 통합 문서로 VBA 모듈을 가져 오려고하면 가져 오기 기능이 중단 될 수 있기 때문에 필요합니다. 또한 매크로를 실행할 때 오류가 발생하면 VBA 확장 성 개체 라이브러리에 대한 참조를 설정했는지 Visual Basic Editor에서 확인할 수 있습니다.

매크로를 사용하려면 원하는 텍스트 파일을 바로 가리 키도록 ModulePath 상수를 업데이트해야합니다. 매크로는 Excel을 사용할 때마다 사용할 수 있도록 개인 통합 문서에도 저장되어야합니다.

매크로 내에서 VBA 코드를 가져오고 내보내는 방법을 보여주는 Ron DeBruin의 사이트에서 일부 코드를 검토하여 이익을 얻을 수도 있습니다.

https://www.rondebruin.nl/win/s9/win002.htm

_ExcelTips_는 비용 효율적인 Microsoft Excel 교육을위한 소스입니다.

이 팁 (11855)은 Microsoft Excel 2007, 2010, 2013 및 2016에 적용됩니다.