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

Forumthread: Datei mit VBS öffnen

Datei mit VBS öffnen
06.08.2018 08:58:54
N0rb
Hallo Zusammen,
ich hoffe ich komme hier auch mit einer Frage zu einem VB-Skript weiter.
Ich habe folgendes Problem:
Ich versuche mit einer Excel-Datei eine weitere zu öffnen und in der 2. ein Makro auszuführen. Dies möchte ich am liebsten vollautomatisch also ohne die Abfrage ob Makros aktiviert werden sollen.
Aktuell verfolge in den Ansatz das Öffnen der zweiten Datei über ein VB-Skript auszuführen um so die Abfrage zu umgehen. Mein Problem aktuell ist, dass wenn ich die zweite Datei mit dem Skript öffne, ein weiteres Mal Excel geöffnet wird und nicht das bestehende mit der ersten Datei verwendet wird und ich somit den Zugriff per VBA auf das zweite Dokument nicht erhalte.
Meine Frage wäre also ob es möglich ist im VB-Skript festzulegen, dass die bereits offene Excel-Datei verwendet werden soll um die zweite Datei zu öffnen.
Code im VB-Skript ist folgender:
Option Explicit
Dim Excel, FSO, Path
Set Excel = WScript.CreateObject("Excel.Application")
Set FSO = CreateObject("Scripting.FileSystemObject")
Path = FSO.GetParentFolderName(WScript.ScriptFullName)
Excel.Visible = True
Excel.Workbooks.Open Path & "\Testdatei.xlsm", , , , "Passwort"
Set Excel = Nothing
Set FSO = Nothing
WScript.Quit
Ich führe das Skript in der ersten Datei so aus:
Sub vbs()
Dim WSHShell As Object
Set WSHShell = CreateObject("WScript.Shell")
WSHShell.Run """C:\...\Test.vbs"""
Set WSHShell = Nothing
End Sub

Ich hoffe ich konnte das Problem ausreichend beschreiben.
Mit freundlichen Grüßen
N0rb
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Datei mit VBS öffnen
06.08.2018 10:04:34
Nepumuk
Hallo N0rb,
wenn du eine Datei mit einem normalen Makro öffnest kommt keine Abfrage bezüglich Makros.
Gruß
Nepumuk
AW: Datei mit VBS öffnen
06.08.2018 10:07:38
N0rb
Hallo Nepumuk,
was meinst du mit normalem Makro? Bei mir kommt die Abfrage immer sobald ich eine Datei mit Makros öffnen will, da dies so in den Sicherheitseintellung festgelegt ist und diese lassen sich auch nicht ändern.
Gruß N0rb
Anzeige
Nicht Du, sondern VBA soll öffnen! (owT)
06.08.2018 10:21:10
EtoPHG

;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

VBS-Dateien in Excel automatisiert öffnen


Schritt-für-Schritt-Anleitung

Um eine Excel-Datei mit einem VBS-Skript zu öffnen und dabei die Abfrage zur Aktivierung von Makros zu umgehen, kannst du die folgenden Schritte befolgen:

  1. Erstelle die VBS-Datei: Erstelle eine neue Textdatei und speichere sie mit der Endung .vbs. Füge den folgenden Code ein:

    Option Explicit
    Dim Excel, FSO, Path
    Set Excel = GetObject(, "Excel.Application") ' Bestehende Excel-Instanz verwenden
    Set FSO = CreateObject("Scripting.FileSystemObject")
    Path = FSO.GetParentFolderName(WScript.ScriptFullName)
    Excel.Visible = True
    Excel.Workbooks.Open Path & "\Testdatei.xlsm", , , , "Passwort"
    Set Excel = Nothing
    Set FSO = Nothing
    WScript.Quit
  2. VBA-Makro erstellen: Öffne die Excel-Datei, von der aus du das VBS-Skript ausführen möchtest. Füge den folgenden VBA-Code in ein neues Modul ein:

    Sub vbs()
       Dim WSHShell As Object
       Set WSHShell = CreateObject("WScript.Shell")
       WSHShell.Run """C:\...\Test.vbs"""
       Set WSHShell = Nothing
    End Sub
  3. VBS-Datei ausführen: Stelle sicher, dass die Pfade korrekt sind und führe das VBA-Makro aus, um die VBS-Datei zu öffnen.


Häufige Fehler und Lösungen

  • Fehler: "Excel-Anwendung nicht gefunden"
    Lösung: Stelle sicher, dass Excel installiert und korrekt konfiguriert ist. Überprüfe, ob du die richtige Version von Excel verwendest.

  • Fehler: Zweite Excel-Instanz öffnet sich
    Lösung: Verwende GetObject(, "Excel.Application") anstelle von CreateObject, um die bereits geöffnete Excel-Instanz zu verwenden.

  • Fehler: Makro-Abfrage erscheint
    Lösung: Stelle sicher, dass die Sicherheitseinstellungen in Excel so konfiguriert sind, dass Makros ohne Abfrage ausgeführt werden können.


Alternative Methoden

Eine alternative Methode zum Öffnen einer Excel-Datei ist die Verwendung von VBA direkt ohne ein VBS-Skript. Du kannst den folgenden Code verwenden:

Sub OpenWorkbook()
    Dim wb As Workbook
    Set wb = Workbooks.Open("C:\...\Testdatei.xlsm", , , , "Passwort")
    wb.Activate
End Sub

Diese Methode umgeht die Notwendigkeit, eine VBS-Datei zu erstellen, und öffnet die Excel-Datei direkt aus VBA.


Praktische Beispiele

Hier sind einige Beispiele zur Verwendung von VBS und VBA:

  1. VBS-Datei öffnen und Makro ausführen: Du kannst eine VBS-Datei schreiben, die eine Excel-Datei öffnet und ein bestimmtes Makro in dieser Datei ausführt.

  2. VBA-Skripte in VBS integrieren: Du kannst auch VBA-Funktionen innerhalb deiner VBS-Datei aufrufen, um bestimmte Aufgaben zu automatisieren.


Tipps für Profis

  • Fehlerprotokollierung: Implementiere eine Fehlerbehandlung in deinem VBS-Skript, um Probleme zu erkennen und zu protokollieren.

  • Verwendung von Umgebungsvariablen: Nutze Umgebungsvariablen, um sicherzustellen, dass deine VBS-Datei auf verschiedenen Maschinen korrekt funktioniert.

  • Komplexe Automatisierungen: Du kannst VBS verwenden, um mehrere Excel-Dateien nacheinander zu öffnen und zu bearbeiten, indem du Schleifen und Bedingungen in dein Skript integrierst.


FAQ: Häufige Fragen

1. Wie kann ich eine VBS-Datei aus einer Excel-Anwendung heraus ausführen?
Du kannst die WScript.Shell-Objekt-Methode verwenden, um die VBS-Datei aus deinem VBA-Makro heraus zu starten.

2. Kann ich VBS-Skripte ohne Excel verwenden?
Ja, VBS kann auch für andere Automatisierungsaufgaben verwendet werden, die nicht direkt mit Excel zu tun haben, z.B. Dateioperationen oder Systemverwaltungsaufgaben.

3. Welche Excel-Version benötige ich für VBS?
Die oben genannten Beispiele sollten in den meisten modernen Excel-Versionen funktionieren, die VBA und VBS unterstützen. Achte darauf, dass dein Excel-Makros aktiviert hat.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige