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.
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 !!
ö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