Gary erhält regelmäßig eine XLS-Datei, die von jemandem außerhalb seines Unternehmens erstellt wird. Anschließend muss er einige Makros in die Arbeitsmappe importieren (oder sie aus einer TXT-Datei kopieren) und die Arbeitsmappe dann im XLSM-Format speichern. Gary fragt sich, ob es eine Möglichkeit gibt, dies zu automatisieren, sodass er ein Makro ausführen kann, das die Makros importiert, die er normalerweise manuell hinzufügt, und dann die Arbeitsmappe im richtigen Format speichert.

Es gibt eine Möglichkeit, dies mithilfe des VBProject-Objekts zu automatisieren. Wenn Ihre externe Textdatei im Wesentlichen Visual Basic-Module enthält, können Sie diese Module mithilfe der Importmethode tatsächlich importieren. Es verhält sich genauso, als würden Sie die Importfunktionen des Visual Basic-Editors verwenden. Hier ist ein Beispiel für einen Code, den Sie verwenden könnten:

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

Beachten Sie, dass der Code die aktive Arbeitsmappe vor dem eigentlichen Import als XLSM-Datei speichert. Dies ist erforderlich, da die Importfunktion möglicherweise nicht funktioniert, wenn Sie versuchen, ein VBA-Modul in eine Arbeitsmappe zu importieren, die keine Makros unterstützt. Wenn beim Ausführen des Makros eine Fehlermeldung angezeigt wird, möchten Sie möglicherweise im Visual Basic-Editor überprüfen, ob Sie einen Verweis auf die VBA Extensibility-Objektbibliothek erstellt haben.

Um das Makro zu verwenden, müssen Sie die ModulePath-Konstante so aktualisieren, dass sie direkt auf die gewünschte Textdatei zeigt. Das Makro sollte auch in Ihrer persönlichen Arbeitsmappe gespeichert sein, damit es verfügbar ist, wenn Sie Excel verwenden.

Sie können auch davon profitieren, wenn Sie Code auf der Website von Ron DeBruin untersuchen, der zeigt, wie Sie VBA-Code innerhalb eines Makros importieren und exportieren:

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

ExcelTips ist Ihre Quelle für kostengünstige Microsoft Excel-Schulungen.

Dieser Tipp (11855) gilt für Microsoft Excel 2007, 2010, 2013 und 2016.