VBScript und BatchScript mit OpenFileDialog und SaveFileDialog
Hallo Leute!
Ich brauche eure Hilfe um mein vorhandendes VBScript und/oder BatchScript zu modifizieren!
Hallo Leute!
Ich habe aus meiner anderen Frage in diesem Forum ein VBScript bekommen und möchte das nun so modifizieren, dass wenn ich es starte sich ein OpenFileDialog öffnet und ich eine .xls oder eine .xlsx datei auswählen kann und sich anschließend ein SaveFileDialog öffnet, wo ich die Excel Datei als .txt Datei abspeichern kann.
Das konvertieren kann das script schon. Dazu kommt, dass das Script nach jeder Zeile noch ein ";" dran schreibt.
Also benötige ich nur die OpenFileDialog Funktion und die SaveFileDialog Funktion.
Hier mein VBScript:
Ich hoffe ihr könnt mir helfen. ;)
Schon mal ein fettes Dankeschön im Vorraus!
MfG
xstr3ck3rx
Ich brauche eure Hilfe um mein vorhandendes VBScript und/oder BatchScript zu modifizieren!
Hallo Leute!
Ich habe aus meiner anderen Frage in diesem Forum ein VBScript bekommen und möchte das nun so modifizieren, dass wenn ich es starte sich ein OpenFileDialog öffnet und ich eine .xls oder eine .xlsx datei auswählen kann und sich anschließend ein SaveFileDialog öffnet, wo ich die Excel Datei als .txt Datei abspeichern kann.
Das konvertieren kann das script schon. Dazu kommt, dass das Script nach jeder Zeile noch ein ";" dran schreibt.
Also benötige ich nur die OpenFileDialog Funktion und die SaveFileDialog Funktion.
Hier mein VBScript:
Set fso = CreateObject("Scripting.FileSystemObject")
Set Args = WScript.Arguments
XLSDatei = Args(0)
TXTDatei = Args(1)
If Not fso.FileExists(XLSDatei) Then WScript.Quit(1)
Set XL = WScript.CreateObject("Excel.Application")
XL.Visible = False
XL.DisplayAlerts = False
Set WB = XL.Workbooks.Open(XLSDatei)
WB.SaveAs TXTDatei, 6, , , , , , , , , , True
WB.Saved = True
XL.Application.Quit
WScript.Sleep 1000
T = fso.OpenTextfile(TXTDatei).ReadAll
fso.CreateTextFile(TXTDatei).Write Replace(T, vbNewLine, ";" & vbNewLine)
Ich hoffe ihr könnt mir helfen. ;)
Schon mal ein fettes Dankeschön im Vorraus!
MfG
xstr3ck3rx
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 203576
Url: https://administrator.de/forum/vbscript-und-batchscript-mit-openfiledialog-und-savefiledialog-203576.html
Ausgedruckt am: 20.04.2025 um 21:04 Uhr
10 Kommentare
Neuester Kommentar
Hallo xstr3ck3rx,
sorry, habe mir deinen Batch jetzt nicht genauer angesehen. Der würde sich vom ersten Überfliegen sicher auf ein Viertel eindampfen lassen. Aber egal, das war nicht deine Frage. Wie schon gesagt, öffnest du sowieso Excel im Hintergrund und Excel hat die entsprechenden Dialoge. Wie du ja bereits weißt, lässt sich Excel recht gut per VBScript steuern, also auch die Dialoge.
Habe das Script von bastla mal entsprechend angepasst.
Evtl. funktioniert das auch mit
in der 4. Zeile, einfach testen.
Die Doku findest du hier bzw. hier.
Grüße
rubberman
sorry, habe mir deinen Batch jetzt nicht genauer angesehen. Der würde sich vom ersten Überfliegen sicher auf ein Viertel eindampfen lassen. Aber egal, das war nicht deine Frage. Wie schon gesagt, öffnest du sowieso Excel im Hintergrund und Excel hat die entsprechenden Dialoge. Wie du ja bereits weißt, lässt sich Excel recht gut per VBScript steuern, also auch die Dialoge.
Habe das Script von bastla mal entsprechend angepasst.
Set fso = CreateObject("Scripting.FileSystemObject")
Set XL = WScript.CreateObject("Excel.Application")
XL.Visible = True
XL.DisplayAlerts = False
XLSDatei = XL.GetOpenFilename("Excel-Dateien (*.xls; *.xlsx),*.xls;*.xlsx", _
1, "Excel-Datei zum konvertieren öffnen ...", , False)
If XLSDatei <> False Then
Set WB = XL.Workbooks.Open(XLSDatei)
TXTDatei = XL.GetSaveAsFilename(fso.GetBaseName(XLSDatei) & ".txt", _
"Text-Dateien (*.txt), *.txt", 1, "Text-Datei speichern unter ...")
If TXTDatei <> False Then
WB.SaveAs TXTDatei, 6, , , , , , , , , , True
WB.Saved = True
End If
End If
XL.Application.Quit
If TXTDatei <> False Then
WScript.Sleep 1000
T = fso.OpenTextfile(TXTDatei).ReadAll
fso.CreateTextFile(TXTDatei).Write Replace(T, vbNewLine, ";" & vbNewLine)
End If
XL.Visible = False
in der 4. Zeile, einfach testen.
Die Doku findest du hier bzw. hier.
Grüße
rubberman
Hallo xstr3ck3rx.
VBScript ist, wie der Name schon sagt, eine Scriptsprache die interpretiert und nicht kompiliert wird. Von irgendwelchen Krücken von Konvertern die versuchen daraus eine *.exe Datei zu machen, halte ich überhaupt nichts.
Willst du ein Executable, lerne eine kompilierbare Programmiersprache.
Grüße
rubberman
VBScript ist, wie der Name schon sagt, eine Scriptsprache die interpretiert und nicht kompiliert wird. Von irgendwelchen Krücken von Konvertern die versuchen daraus eine *.exe Datei zu machen, halte ich überhaupt nichts.
Willst du ein Executable, lerne eine kompilierbare Programmiersprache.
Grüße
rubberman
Hallo xstr3ck3rx,
dazu muss die Textdatei zeilenweise eingelesen werden und an den Semikola aufgesplittet und neu zusammengesetzt werden.
Grüße
rubberman
dazu muss die Textdatei zeilenweise eingelesen werden und an den Semikola aufgesplittet und neu zusammengesetzt werden.
Set fso = CreateObject("Scripting.FileSystemObject")
Set XL = WScript.CreateObject("Excel.Application")
XL.Visible = True
XL.DisplayAlerts = False
XLSDatei = XL.GetOpenFilename("Excel-Dateien (*.xls; *.xlsx),*.xls;*.xlsx", _
1, "Excel-Datei zum konvertieren öffnen ...", , False)
If XLSDatei <> False Then
Set WB = XL.Workbooks.Open(XLSDatei)
TXTDatei = XL.GetSaveAsFilename(fso.GetBaseName(XLSDatei) & ".txt", _
"Text-Dateien (*.txt), *.txt", 1, "Text-Datei speichern unter ...")
If TXTDatei <> False Then
WB.SaveAs TXTDatei, 6, , , , , , , , , , True
WB.Saved = True
End If
End If
XL.Application.Quit
If TXTDatei <> False Then
WScript.Sleep 1000
T = ""
Set F = fso.OpenTextfile(TXTDatei)
Do While Not F.AtEndOfStream
A = Split(F.ReadLine, ";")
On Error Resume Next
If IsNumeric(A(2)) Then A(2) = Right("0000000000" & A(2), 10)
On Error Goto 0
T = T & Join(A, ";") & ";" & vbNewLine
Loop
F.Close
fso.CreateTextFile(TXTDatei).Write T
End If
Grüße
rubberman