Hallo zusammen, Um was geht es: Ein MP3-file erstellen, welche eine von mir erstellte Vokabelliste abspielt. Erst in Englisch, dann die deutsche Übersetzung. Die Vokabelliste wird nach und nach mit technischen Begriffen ergänzt. Das habe ich bereits gefunden: Das Programm DSpeech http://www.heise.de/download/dspeech-09d1a91bd1aec2fee048e77ad7f0f237-1448488761-2662973.html Dieses Programm kann Texte vorlesen. Ok, nichts besonderes. Der Clou: man kann Tags in den Text einfügen, mit denen man die Sprecher umschalten kann: #VOICE Microsoft Zira Desktop five #VOICE Microsoft Hedda Desktop fünf #VOICE Microsoft Zira Desktop stupid #VOICE Microsoft Hedda Desktop blöd Das funktioniert sehr gut und ich kann das Gesprochene als MP3 speichern. Das möchte ich: In Excel oder Word eine Tabelle mit zwei Spalten erstellen. Links der englische Begriff und rechts die deutsche Übersetzung. Dann soll ein Macro oder ähnliches mir aus dieser Tabelle einen Text, wie oben angegeben, erzeugen. Ist das machbar? Gibt es bereits fertige Lösungen? Über Denkanstöße oder weiterführende Links würde ich mich freuen. Danke.
klar kann man das machen ist aber umständlich zu erklären eine Schleife läuft alle nicht-leeren Zeilen durch darin -Textausgabe "#VOICE Microsoft Zira Desktop" -Textausgabe Zeilex_Spalte1 -Textausgabe "#VOICE Microsoft Hedda Desktop" -Textausgabe Zeilex_Spalte2 Ausgabe in Textdatei müsste ich selbst erstmal nachschauen
Hallo Mike, danke für deine Unterstützung. Das habe ich gefunden und etwas angepasst: Excel-Makro:
1 | Option Explicit |
2 | Sub Create_New_Text_Files_from_Column() |
3 | 'Variablen definieren |
4 | Dim Cr As Long, Cc As Integer, CrE As Long, CcE As Integer |
5 | Dim i As Long, n As Long, y As Long |
6 | Dim CHeader As String, ExPfad As String, Exfile As String |
7 | 'Exportpfad mit Backslash am Schluss definieren !! |
8 | ExPfad = "C:\vokabeln\" |
9 | Cr = 65536 |
10 | 'Schliessen einer evetnuell noch geöffneten Datei |
11 | Close #1 |
12 | '1. Öffnen der Datei |
13 | 'Den Namen und Pfad bitte anpassen |
14 | Exfile = ExPfad & ".txt" |
15 | Open Exfile For Output As #1 |
16 | 'Beginn des Datenexports in die Textdatei |
17 | For n = 2 To Cr |
18 | 'Write oder Print verwenden |
19 | Print #1, "#VOICE Microsoft Zira Desktop" 'umschalten auf englisch |
20 | Print #1, Cells(n, 1) 'englisches verb aus der Tabelle in txt-file schreiben |
21 | Print #1, "#VOICE Microsoft Hedda Desktop" 'umschalten auf deutsch |
22 | Print #1, Cells(n, 2) 'deutsches verb aus der Tabelle in txt-file schreiben |
23 | Next n |
24 | 'Schliessen der Datei weil Dateiende erreicht wurde |
25 | Close #1 |
26 | MsgBox n & " Textdateien wurden in " & ExPfad & " erstellt" |
27 | End Sub |
Ergibt diesen Text: #VOICE Microsoft Zira Desktop Five #VOICE Microsoft Hedda Desktop Fünf #VOICE Microsoft Zira Desktop Stupid #VOICE Microsoft Hedda Desktop blöd #VOICE Microsoft Zira Desktop #VOICE Microsoft Hedda Desktop #VOICE Microsoft Zira Desktop #VOICE Microsoft Hedda Desktop #VOICE Microsoft Zira Desktop #VOICE Microsoft Hedda Desktop #VOICE Microsoft Zira Desktop Bin ganz nahe an der Lösung. Muss noch die richtigen Steuerzeichen einfügen und den Zeilenzähler n umstricken.
Ach das ging schneller als ich dachte:
1 | Zeilenanzahl = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row |
Jetzt habe ich diesen Text: #VOICE Microsoft Zira Desktop Five #VOICE Microsoft Hedda Desktop Fünf #VOICE Microsoft Zira Desktop Stupid #VOICE Microsoft Hedda Desktop blöd Nun kann ich mein kleines Vokabelheft abtippen und mir die Vokabeln auf dem Weg zur Arbeit anhören. Vorausgesetzt mein Anfänger-script macht das mit. Werde mich mal in dieses Office-VBA einarbeiten. Kann man bestimmt eleganter lösen. Hier der aktuelle Code:
1 | Option Explicit |
2 | Sub Create_New_Text_Files_from_Column() |
3 | 'Variablen definieren |
4 | Dim Zeilenanzahl As Long |
5 | Dim n As Long |
6 | Dim CHeader As String, ExPfad As String, Exfile As String |
7 | 'Exportpfad mit Backslash am Schluss definieren !! |
8 | ExPfad = "C:\vokabeln\" |
9 | Zeilenanzahl = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row |
10 | 'Schliessen einer evetnuell noch geöffneten Datei |
11 | Close #1 |
12 | '1. Öffnen der Datei |
13 | 'Den Namen und Pfad bitte anpassen |
14 | Exfile = ExPfad & ".txt" |
15 | Open Exfile For Output As #1 |
16 | 'Beginn des Datenexports in die Textdatei |
17 | For n = 2 To Zeilenanzahl |
18 | 'Write oder Print verwenden |
19 | Print #1, "#VOICE Microsoft Zira Desktop" 'umschalten auf englisch |
20 | Print #1, Cells(n, 1) 'englisches verb aus der Tabelle in txt-file schreiben |
21 | Print #1, "#VOICE Microsoft Hedda Desktop" 'umschalten auf deutsch |
22 | Print #1, Cells(n, 2) 'deutsches verb aus der Tabelle in txt-file schreiben |
23 | Next n |
24 | 'Schliessen der Datei weil Dateiende erreicht wurde |
25 | Close #1 |
26 | MsgBox n & " Vokabeln wurden in " & ExPfad & " erstellt" |
27 | End Sub |
Die Excel-Tabelle: Englisch Deutsch Five Fünf Stupid blöd
:
Bearbeitet durch User
öhm, das ist VBA wieso eleganter lösen? es kommt raus was du raus haben willst Durch die Abfrage der letzten Zeile bist du für Erweiterungen gerüstet. Punkt. Fertig.
Warum muss die Eingabe eigentlich unbedingt aus so etwas kompliziert zu handhabendem wie einer Excel-Tabelle kommen? Man könnte das ganze doch einfach in eine Textdatei nach dem folgenden Schema schreiben:
1 | five fünf |
2 | stupid blöd |
Das dann weiter zu verarbeiten ist in jeder Programmiersprache trivial. Sogar mit einem dreckigen Einzeiler für Kommandozeilenfrickler:
1 | awk '{ printf "#VOICE Microsoft Zira Desktop\n%s\n#VOICE Microsoft Hedda Desktop\n%s\n", $1, $2 }' vokabeln.txt > ausgabe.txt |
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.