ich hoffe, mir kann jemand helfen. Mit nachfolgendem Makro kopiere ich ein Makro und erstelle ein Workbooks-Open-Ereignis, mit dem mir der Verweis Windows ScriptHost Object Model beim Öffnen der Datei automatisch aktiviert werden soll, in eine Exceldatei.
Sub Versionsprüfung_kopieren(Dateiname As Variant)
Dim Pfad As String
Pfad = ThisWorkbook.Path & "\"
Workbooks("Terminkalender.xls").VBProject.VBComponents("Versionsprüfung").Export Pfad & "Versionsprüfung.bas"
With ActiveWorkbook.VBProject
'Modul kopieren
.VBComponents.Import Pfad & "Versionsprüfung.bas"
.VBComponents("Versionsprüfung").Name = "Versionsprüfung"
'Workbook_Open-Ereignis kopieren
.VBComponents("DieseArbeitsmappe").CodeModule.InsertLines 2, "Private Sub Workbook_Open()"
.VBComponents("DieseArbeitsmappe").CodeModule.InsertLines 3, "Dim Verweis As Object"
.VBComponents("DieseArbeitsmappe").CodeModule.InsertLines 4, "On Error Resume Next"
.VBComponents("DieseArbeitsmappe").CodeModule.InsertLines 5, "Set Verweis = Application.VBE.ActiveVBProject.References"
.VBComponents("DieseArbeitsmappe").CodeModule.InsertLines 6, "Verweis.Remove Verweis(""wshom.ocx"") ' verweis löschen"
.VBComponents("DieseArbeitsmappe").CodeModule.InsertLines 7, "Verweis.AddFromFile ""wshom.ocx"" 'verweis neu setzen"
.VBComponents("DieseArbeitsmappe").CodeModule.InsertLines 8, ""
.VBComponents("DieseArbeitsmappe").CodeModule.InsertLines 9, "Prüfung_Exportdateien"
.VBComponents("DieseArbeitsmappe").CodeModule.InsertLines 10, "End Sub"
End With
End Sub
Der Verweis, der aktiviert werden soll, wird benötigt, um Daten aus der Registry auszulesen.
Nun mein Problem. Wird die Datei, in die der obige Code durch das Makro erstellt wurde, das 1. Mal geöffnet, wird der Verweis leider nicht gesetzt. Erst beim 2. Mal wird der Verweis gesetzt. Hat jemand eine Idee, warum das so ist? Ich komme leider nicht dahinter.
Danke Euch und Gruß,
Kasimir