Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: microsoft scripting runtime einbinden

microsoft scripting runtime einbinden
26.10.2007 22:43:00
Knut
Hallo,
weiß jemand wie ich herausfinde welchen code eine Bibliothek hat ( z.B. : 0002E157-0000-0000-C000-000000000046 steht fuer VBE).
Oder kann mir jwemand helfen die "microsoft scripting runtime" automatisch innerhalb des Programmes einzubinden ?
Ich moechte die microsoft scripting runtime einbinden - am liebsten mit meiner untenstehenden einfuegesub :
ich rufe die ueber : einbinden "{0002E157-0000-0000-C000-000000000046}", 5, 3
auf ( hier fuer vbe einzubinden )

Sub einbinden(strGUID As String, lngMajor As Long, lngMinor As Long)
Dim objReference As Object
On Error Resume Next
Set objReference = Application.VBE.ActiveVBProject.References.AddFromGuid _
(strGUID, lngMajor, lngMinor)
Set objReference = Nothing
End Sub


Danke im voraus,
Knut

Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: microsoft scripting runtime einbinden
26.10.2007 23:18:00
Ramses
Hallo
Sub Show_References()
    '(C) Ramses
    Dim i As Integer
    With ThisWorkbook.VBProject.References
        For i = 1 To .count
            'Debug.Print .Item(i).Description
            Sheets("Sheet1").Cells(i, 1) = .Item(i).GUID
            Sheets("Sheet1").Cells(i, 2) = .Item(i).Description
            Sheets("Sheet1").Cells(i, 3) = .Item(i).major
            Sheets("Sheet1").Cells(i, 4) = .Item(i).minor
        Next
    End With
End Sub

Zum setzten kannst du auch noch das verwenden
'Häufig gebrauchte Verweise "References" setzen
'Const erweitert von Ramses
'Verweise anpassen
Dim isRef As Boolean, i As Integer, link As Object
Const strExcel9 As String = "{00020813-0000-0000-C000-000000000046}" 'Microsoft Excel 9.0 Objects Library (Excel2000)
Const strExcel10 As String = "{00024500-0000-0000-C000-000000000046}" 'Microsoft Excel 10.0 Objects Library (Excel XP)
Const strExcel11 As String = "{00020813-0000-0000-C000-000000000046}" 'Microsoft Excel 11.0 Object Library (Excel 2003)
Const strWord8 As String = "{00020900-0000-0000-C000-000000000046}" 'Microsoft Word 8.0 Objects Library (Word 97)
Const strWord9 As String = "{00020905-0000-0000-C000-000000000046}" 'Microsoft Word 9.0 Objects Library (Word 2000)
Const strWord10 As String = "{000209FF-0000-0000-C000-000000000046}" 'Microsoft Word 10.0 Objects Library (Word XP)
Const strWord11 As String = "{00020905-0000-0000-C000-000000000046}" 'Microsoft Word 11.0 Object Library (Word 2003)
Const strMSOff11 As String = "{2DF8D04C-5BFA-101B-BDE5-00AA0044DE52}" 'Microsoft Office 11.0 Object Library
Const strOutlook9 As String = "{00062FFF-0000-0000-C000-000000000046}" 'Microsoft Outlook 9.0 Objects Library (Outlook 2000)
Const strOutlook10 As String = "{00020D75-0000-0000-C000-000000000046}" 'Microsoft Outlook 10.0 Objects Library (Outlook XP)
Const strOutlook11 As String = "{00062FFF-0000-0000-C000-000000000046}" 'Microsoft Outlook 11.0 Object Library (Outlook 2003)
Const strDAO As String = "{00025E01-0000-0000-C000-000000000046}" 'Microsoft DAO 3.6 Objects Library (DAO)
Const strADOX As String = "{00000600-0000-0010-8000-00AA006D2EA4}" 'ADO Ext. 2.1 for DDL And Security (ADOX)
Const strADO As String = "{00000201-0000-0010-8000-00AA006D2EA4}" 'Microsoft ActiveX Data Objects Library 2.1 (ADO)
Const strScript As String = "{420B2830-E718-11CF-893D-00A0C9054228}" 'Microsoft Scripting Runtime (WSH, FileSystemObject)
Const strVBA As String = "{000204EF-0000-0000-C000-000000000046}" 'Visual Basic for Application
Const strMSF20 As String = "{0D452EE1-E08F-101A-852E-02608C4D0BB4}" 'Microsoft Forms 2.0 Object Library
Const strWComCon As String = "{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}" 'Windows Common Controls 6.0 SP6
Const strAcroDist As String = "{317DA881-ECC5-11D1-B976-00600802DB86}" 'Acrobat Distiller

Sub SetReference(ref As String)
    With Application.VBE.ActiveVBProject.References
        ' Aktuelle gesetzte Verweise durchgehen
        On Error GoTo KillRef
        i = 0: Do: i = i + 1: isRef = .Item(i).name = ref: Loop Until i% >= .count Or isRef
        If isRef Then
            If .Item(ref).IsBroken Then ' Verweis ungültig
                .Remove .Item(ref)
                Else ' Verweis ist bereits gesetzt
                GoTo Sub_Exit
            End If
        End If
        On Error GoTo Err_Check:
        ' Verweise entsprechend der Registry GUID setzen
        If ref = "DAO" Then Set link = .AddFromGuid(strDAO, 5, 0)
        If ref = "ADOX" Then Set link = .AddFromGuid(strADOX, 2, 1)
        If ref = "ADO" Then Set link = .AddFromGuid(strADO, 2, 1)
        If ref = "Script" Then Set link = .AddFromGuid(strScript, 1, 0)
        If ref = "Excel" Then Set link = .AddFromGuid(strExcel, 1, 1)
        If ref = "Word" Then Set link = .AddFromGuid(strWord, 8, 1)
        If ref = "Outlook" Then Set link = .AddFromGuid(strOutlook, 9, 0)
        Sub_Exit:
        Set link = Nothing
    End With
    Exit Sub
    
    Err_Check:
    ' Namenskonflikt mit Verweistabelle or Index außerhalb Bereich
    If Err.Number = 32813 Or Err.Number = 9 Then
        Resume Next
    Else
        MsgBox "Error Number : " & Err.Number & vbCrLf & Err.Description
        GoTo Sub_Exit:
    End If
    KillRef:
    With Application.VBE.ActiveVBProject.References
    If .Item(i).IsBroken Then .Remove .Item(i)
    End With
    Resume Next
End Sub

Gruss Rainer

Anzeige
AW: microsoft scripting runtime einbinden
27.10.2007 11:23:00
Knut
Danke !
;
Anzeige
Anzeige

Infobox / Tutorial

Microsoft Scripting Runtime in Excel einbinden


Schritt-für-Schritt-Anleitung

Um die Microsoft Scripting Runtime in Excel zu aktivieren, folge diesen Schritten:

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu starten.
  2. Klicke im Menü auf Extras und wähle Verweise.
  3. Suche in der Liste nach Microsoft Scripting Runtime und aktiviere das Kontrollkästchen.
  4. Klicke auf OK, um die Änderungen zu speichern.

Wenn du die Microsoft Scripting Runtime automatisch über VBA aktivieren möchtest, kannst du folgenden Code verwenden:

Sub EinbindenScriptingRuntime()
    Dim objReference As Object
    On Error Resume Next
    Set objReference = Application.VBE.ActiveVBProject.References.AddFromGuid("{420B2830-E718-11CF-893D-00A0C9054228}", 1, 0)
    If Err.Number <> 0 Then
        MsgBox "Fehler beim Hinzufügen des Verweises: " & Err.Description
    End If
    On Error GoTo 0
End Sub

Häufige Fehler und Lösungen

  • Fehler: "Verweis ist ungültig"
    Dies passiert, wenn die Microsoft Scripting Runtime nicht korrekt installiert ist. Stelle sicher, dass die Bibliothek auf deinem System vorhanden ist.

  • Fehler: "Objekt nicht gefunden"
    Wenn du beim Ausführen deines Codes auf diesen Fehler stößt, überprüfe, ob der Verweis korrekt aktiviert ist. Wenn nicht, gehe zurück zu den Verweisen und aktiviere ihn.

  • Fehler bei der Ausführung des Codes
    Falls der Code nicht läuft, stelle sicher, dass du die richtige GUID für die Microsoft Scripting Runtime verwendest.


Alternative Methoden

  1. Manuelles Hinzufügen über den VBA-Editor: Du kannst die Microsoft Scripting Runtime über den Menüpunkt Extras > Verweise manuell hinzufügen.

  2. Verwendung von FileSystemObject: Du kannst auch direkt auf die FileSystemObject-Klasse zugreifen, ohne den Verweis zu aktivieren, indem du den vollständigen Pfad angibst.

  3. VBA-Skripte für häufige Aufgaben: Erstelle VBA-Skripte, die oft benötigte Aufgaben automatisieren, wie das Kopieren von Dateien oder das Bearbeiten von Excel-Daten.


Praktische Beispiele

  • Beispiel 1: Datei erstellen und schreiben
Sub DateiErstellen()
    Dim fso As Object
    Set fso = CreateObject("Scripting.FileSystemObject")
    Dim datei As Object
    Set datei = fso.CreateTextFile("C:\Testdatei.txt", True)
    datei.WriteLine "Hallo, dies ist eine Testdatei."
    datei.Close
End Sub
  • Beispiel 2: Verzeichnis auflisten
Sub VerzeichnisAuflisten()
    Dim fso As Object
    Set fso = CreateObject("Scripting.FileSystemObject")
    Dim ordner As Object
    Dim datei As Object
    Set ordner = fso.GetFolder("C:\MeinOrdner")

    For Each datei In ordner.Files
        Debug.Print datei.Name
    Next datei
End Sub

Tipps für Profis

  • Nutze die FileSystemObject-Klasse, um komplexe Dateisystemoperationen durchzuführen, wie das Kopieren und Verschieben von Dateien.
  • Du kannst die Microsoft Scripting Runtime auch in Kombination mit anderen Bibliotheken verwenden, um den Funktionsumfang deiner VBA-Projekte zu erweitern.
  • Bei der Nutzung von Skripten solltest du immer auf die Fehlerbehandlung achten, um Abstürze zu vermeiden.

FAQ: Häufige Fragen

1. Wie finde ich die GUID für andere Verweise?
Du kannst die GUIDs für andere Verweise in den Eigenschaften der jeweiligen Bibliothek im Menü Verweise finden.

2. Was mache ich, wenn die Microsoft Scripting Runtime nicht in der Liste der Verweise erscheint?
Stelle sicher, dass die Bibliothek auf deinem Computer installiert ist. Andernfalls installiere sie über die Microsoft-Website oder die Office-Installation.

3. Kann ich die Microsoft Scripting Runtime in Excel Online verwenden?
Die Microsoft Scripting Runtime ist nur in der Desktop-Version von Excel verfügbar und kann nicht in Excel Online verwendet werden.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige