Herzlichen Dank für Eure Hilfe, auch von den betroffenen Eltern!! Ich
habe nun inzwischen 8 Seiten aus "Findus und Pettersson" in
verschiedenen Farben eingefärbt, und alle hoffen, dass der Junge nun
doch etwas Freude am Lesen findet.
Darf ich diese Eure Makros weitergeben? Es gibt bestimmt etliche
Interessenten dafür...
Noch eine Frage zum Makro:
Die Mutter sagt, zweifarbig ist am besten. Ich würde es gern noch etwas
komfortabler machen, die möglichen Farben auszuprobieren. Kann ich bei
der Farbzuweisung im Array statt der festen Konstanten eine Inputbox
verwenden, oder funktioniert das nicht? (Word 97).
'Farben festlegen
aFarbe = Array(wdBlack, wdBlue)
Ingrid
> Darf ich diese Eure Makros weitergeben? Es gibt bestimmt etliche
> Interessenten dafür...
Ich kann ja nicht gut nein sagen und jeder kann es selber auf Google finden.
Keine Problem gib das Ding weiter wo es genutzt werden kann.
> Die Mutter sagt, zweifarbig ist am besten. Ich würde es gern noch etwas
> komfortabler machen, die möglichen Farben auszuprobieren.
Hat aber den Nachteil, dass die Eingabe dann immer gemacht werden muss.
> Kann ich bei der Farbzuweisung im Array statt der festen
> Konstanten eine Inputbox verwenden, oder funktioniert das nicht? (Word
97).
Ja und nein, es kann nicht so einfach nur eine Zeile gesetzt werden. Aber
ich habe den Code angepasst.
wdBlack = 1
wdBlue = 2
wdTurquoise = 3
wdBrightGreen = 4
wdPink = 5
wdRed = 6
wdYellow = 7
wdWhite = 8
wdDarkBlue = 9
wdTeal = 10
wdGreen = 11
wdViolet = 12
wdDarkRed = 13
wdDarkYellow = 14
wdGray50 = 15
wdGray25 = 16
' ---------- Start Code ----------
Option Explicit
Dim aFarbe() As Integer
Sub SilbenEinfärben()
Dim lNummer As Long
Dim bFastSave As Boolean
Dim iZähler As Integer
Dim cAntwort As String
System.Cursor = wdCursorWait
Application.WindowState = wdWindowStateNormal
Application.Resize Width:=500, Height:=250
ActiveDocument.Save
ActiveDocument.SaveAs FileName:=ActiveDocument.Path & "\Farb_" &
ActiveDocument.Name
bFastSave = Options.AllowFastSave
Options.AllowFastSave = False
'Farben eingeben
Do
cAntwort = InputBox("Bitte Farbnummer eingeben", "Eingabe", "1")
If Not cAntwort = "" Then
ReDim Preserve aFarbe(iZähler)
aFarbe(iZähler) = CInt(cAntwort)
iZähler = iZähler + 1
End If
Loop While Not cAntwort = ""
'Silbentrennung abschalten.
ActiveDocument.AutoHyphenation = False
'Aus Zeilen Absätze machen.
procZeileZuAbsatz
'Silbentrennung einschalten.
ActiveDocument.AutoHyphenation = True
'Absätze einfärben
For lNummer = 1 To ActiveDocument.Paragraphs.Count
ActiveDocument.UndoClear
ActiveDocument.Save
DoEvents
procAbsatzEinfärben ActiveDocument.Paragraphs(lNummer)
Next lNummer
'Aus Temp-Absatz wieder Zeilen machen
procAbsatzZuZeile
procSpacesEntfernen
Options.AllowFastSave = bFastSave
ActiveDocument.Save
System.Cursor = wdCursorNormal
MsgBox "Ich bin schon fertig."
End Sub
Private Sub procZeileZuAbsatz()
Selection.HomeKey Unit:=wdStory
While Not (Selection.Range.End) =
(ActiveDocument.Bookmarks("\EndOfDoc").Range.End)
Selection.EndKey Unit:=wdLine
If Not Len(Selection.Paragraphs(1).Range.Text) = 1 Then
Selection.TypeText "¡" & vbCr
Selection.MoveLeft Unit:=wdCharacter, Count:=1
Selection.HomeKey Unit:=wdLine
End If
Selection.MoveDown Unit:=wdLine, Count:=1
Selection.EndKey Unit:=wdLine
ActiveDocument.UndoClear
Wend
ActiveDocument.Save
End Sub
Private Sub procAbsatzZuZeile()
Selection.HomeKey Unit:=wdStory
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = "¡^p"
.Replacement.Text = ""
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
ActiveDocument.UndoClear
ActiveDocument.Save
End Sub
Private Sub procSpacesEntfernen()
Selection.HomeKey Unit:=wdStory
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = " "
.Replacement.Text = " "
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
While Selection.Find.Execute(Replace:=wdReplaceAll)
ActiveDocument.UndoClear
Wend
ActiveDocument.Save
End Sub
Private Sub procAbsatzEinfärben(ByVal OAbsatz As Paragraph)
Dim cVorher As String
Dim cNachher As String
Dim lZähler As Long
Dim lFarbCode As Long
If Not Len(OAbsatz.Range.Text) = 1 Then
OAbsatz.Range.Select
Selection.HomeKey Unit:=wdLine
Do
Application.ScreenRefresh
cVorher = Trim$(ActiveDocument.Bookmarks("\Line").Range.Text)
OAbsatz.Range.InsertBefore " "
Application.ScreenRefresh
cNachher = Trim$(ActiveDocument.Bookmarks("\Line").Range.Text)
If Not cVorher = cNachher Then
lZähler = lZähler + 1
lFarbCode = lZähler Mod (UBound(aFarbe()) + 1)
End If
Application.ScreenRefresh
ActiveDocument.Bookmarks("\Line").Range.Font.ColorIndex =
aFarbe(lFarbCode)
Loop While Not Len(Trim$(cNachher)) = 0
End If
End Sub
' ---------- Ende Code ----------
--
Thomas Gahler
MVP für WordVBA
- Windows XP, Office XP (SP2)
Ingrid
Thomas Gahler schrieb:
dieses Makro ist super (!) und kommt sicherlichen vielen Grundschullehrern
(bin einer) wie gerufen. Es wird bestimmt oft eingesetzt. Vielen Dank für
die Mühe und das _sehr_ nützliche Programm!
Karl
PS: Klappt es bei euch auch nicht bei dem Wort "eine"?
"Ingrid Kutsche" <Ingrid...@web.de> schrieb im Newsbeitrag
news:2gfe6jF...@uni-berlin.de...
> dieses Makro ist super (!) und kommt sicherlichen vielen Grundschullehrern
> (bin einer) wie gerufen. Es wird bestimmt oft eingesetzt.
Na dann machen wir doch Nägel mit Köpfen. Gebt mir die Wünsche noch bekannt
und ich werde daraus ein schönes Addin machen und dieses dann auf einer
schönen Webseite im Internet veröffentlichen. Der entsprechende Link folgt
später.
Was benötigt Ihr noch alles, dammit alle glücklich sind?
- Reicht ein definieren der eigenen Farben (Anzahl Farben, welche Farben,
Reihenfolge der Farben)?
- Präfix/Suffix für den neuen Dateinamen?
- Die Performance noch ein wenig verbessern.
> die Mühe und das _sehr_ nützliche Programm!
Ich hoffe du hast im ersten Thread von Ingrid den Querverweis gelesen, dass
die Betonung der Silben nicht immer mit der Silbertrennung übereinstimmt.
Aber wenn dir dieses Manko nichts aus macht, dann ist alles klar.
> PS: Klappt es bei euch auch nicht bei dem Wort "eine"?
Jetzt schon :-) Das Makro kann nur trennen was definiert ist und wenn in
Extras -> Sprache -> Silbertrennung... eine zu grosse Silbentrennzione
eingegeben wird, dann wird das Wörtchen 'eine' eben nicht getrennt.
' ---------- Start Code ----------
Option Explicit
Dim aFarbe() As Integer
Sub SilbenEinfärben()
Dim lNummer As Long
Dim bFastSave As Boolean
Dim iZähler As Integer
Dim cAntwort As String
System.Cursor = wdCursorWait
Application.WindowState = wdWindowStateNormal
Application.Resize Width:=500, Height:=250
ActiveDocument.Save
ActiveDocument.SaveAs FileName:=ActiveDocument.Path & _
"\Farb_" & ActiveDocument.Name
bFastSave = Options.AllowFastSave
Options.AllowFastSave = False
'Farben eingeben
Do
cAntwort = InputBox("Bitte Farbnummer eingeben", "Eingabe", "1")
If Not cAntwort = "" Then
ReDim Preserve aFarbe(iZähler)
aFarbe(iZähler) = CInt(cAntwort)
iZähler = iZähler + 1
End If
Loop While Not cAntwort = ""
'Silbentrennung abschalten.
ActiveDocument.AutoHyphenation = False
'Aus Zeilen Absätze machen.
procZeileZuAbsatz
'Silbentrennung einschalten.
ActiveDocument.AutoHyphenation = True
ActiveDocument.HyphenationZone = CentimetersToPoints(0.1)
'Absätze einfärben
For lNummer = 1 To ActiveDocument.Paragraphs.Count
ActiveDocument.UndoClear
ActiveDocument.Save
DoEvents
procAbsatzEinfärben ActiveDocument.Paragraphs(lNummer)
Next lNummer
'Aus Temp-Absatz wieder Zeilen machen
procAbsatzZuZeile
procSpacesEntfernen
Options.AllowFastSave = bFastSave
ActiveDocument.Save
System.Cursor = wdCursorNormal
MsgBox "Ich bin schon fertig."
End Sub
Private Sub procZeileZuAbsatz()
Selection.HomeKey Unit:=wdStory
While Not (Selection.Range.End) = _
(ActiveDocument.Bookmarks("\EndOfDoc").Range.End)
ActiveDocument.UndoClear
ActiveDocument.Save
End Sub
OAbsatz.Range.Select
Selection.HomeKey Unit:=wdLine
OAbsatz.Range.InsertBefore " "
Application.ScreenRefresh
ActiveDocument.Bookmarks("\Line").Range.Font.ColorIndex = _
aFarbe(lFarbCode)
Loop While Not Len(Trim$(cNachher)) = 0
End If
End Sub
' ---------- Ende Code ----------
--
Thomas Gahler schrieb:
> Hallo Karl
> Hallo Ingrid
>
>
>> dieses Makro ist super (!) und kommt sicherlichen vielen Grundschullehrern
>> (bin einer) wie gerufen. Es wird bestimmt oft eingesetzt.
Das hab ich mir doch gedacht ;-)).
> Na dann machen wir doch Nägel mit Köpfen. Gebt mir die Wünsche noch bekannt
> und ich werde daraus ein schönes Addin machen und dieses dann auf einer
> schönen Webseite im Internet veröffentlichen. Der entsprechende Link folgt
> später.
Das ist eine tolle Idee! Ich hab keine Homepage, kann es also nur per
Diskette oder so weitergeben.
>
> Was benötigt Ihr noch alles, dammit alle glücklich sind?
Das nun ist eine schwierige Frage. Ich bin zur Zeit zufrieden so, habe
allerdings die Farb-Auswahl-Version noch nicht getestet, hatte leider
keine Zeit.
> - Reicht ein definieren der eigenen Farben (Anzahl Farben, welche Farben,
> Reihenfolge der Farben)?
Ich finde es selber schwerer zu lesen mit 4 Farben. Ich empfinde es so,
wie "meine" Mutter auch gesagt hat: am besten zweifarbig.
Das eine Buch, was so gedruckt ist, ist schwarz - rot, das kann man gut
lesen. Gut sind (für mich) auch schwarz - pink und schwarz - blau. Gelb
ist schlecht zu sehen, türkis auch, grün auch. Dunkelgrün geht wieder
besser. (Weiß scheidet aus ;-), zumindest auf weißem Papier... )
Was sich sonst noch bewährt, sollten die sagen, die mit den Kindern
lesen. Meine sind aus diesem Alter leider raus... Und Lehrer bin ich
auch nicht, "nur" Lehrerkind und möglicherweise bald Lehrermutter.
Mein Vorschlag wäre:
Bau eine Farbkombination als "Standardvariante" ein, die der benutzen
kann, der mit Spielerei am Computer nix weiter am Hut hat.
Für die, die gern selber variieren möchten, könntest du (falls das so
geht; ich hab ja keine Ahnung) die Farbübersicht mit einbauen, die
Christian "gebastelt" hat, und dort gleich die Zahlen mit angeben
lassen, die für das Aussuchen der Farben nötig sind.
> - Präfix/Suffix für den neuen Dateinamen?
Für wenig geübte Computerbenutzer ist die neue Datei vielleicht leichter
wiederzufinden, wenn du die Änderung hinten anhängst. (Ich erlebe die
tollsten Sachen, wenn meine Kollegen Dateien suchen...)
> - Die Performance noch ein wenig verbessern.
Wichtig wäre vielleicht noch der Hinweis, dass man dem Makro bei der
Arbeit zugucken kann und warten muss, bis es meldet, dass es fertig ist.
Beim allerersten Aufruf dachte ich nämlich, ich hab welche von den
"verbotenen" Formatierungen o.ä. drin, und das Makro steckt schon in der
"angekündigten" Endlosschleife, und hab es abgewürgt.
>
>> die Mühe und das _sehr_ nützliche Programm!
> Ich hoffe du hast im ersten Thread von Ingrid den Querverweis gelesen, dass
> die Betonung der Silben nicht immer mit der Silbertrennung übereinstimmt.
> Aber wenn dir dieses Manko nichts aus macht, dann ist alles klar.
Ich hab noch nichts gesehen, wo das der Fall war.
>> PS: Klappt es bei euch auch nicht bei dem Wort "eine"?
> Jetzt schon :-) Das Makro kann nur trennen was definiert ist und wenn in
> Extras -> Sprache -> Silbertrennung... eine zu grosse Silbentrennzione
> eingegeben wird, dann wird das Wörtchen 'eine' eben nicht getrennt.
Ich hatte auch kurze Wörter, wo keine Färbung erfolgte. Aber das hast du
ja sicher jetzt ausgemerzt, und bei den kurzen Texten, die Leseanfänger
nur brauchen, kann man auch noch mal nacharbeitern.
<snip Code>
Morgen werde ich hoffentlich dazukommen, die neue Version zu testen.
Aber erst muss ich mal die Studienkandidatin Grundschullehramt zum Tag
der offenen Tür begleiten...
Vielen Dank nochmal!
Ingrid
Karl Schmitt schrieb:
> Hallo an die fleißigen Programmierer,
>
> dieses Makro ist super (!) und kommt sicherlichen vielen Grundschullehrern
> (bin einer) wie gerufen. Es wird bestimmt oft eingesetzt. Vielen Dank für
> die Mühe und das _sehr_ nützliche Programm!
Das hab ich mir doch gedacht... Schön wäre nun natürlich noch, wenn wir
eine "Tauschbörse" oder Sammelstelle einrichten könnten, wo die
eingefärbten Texte gesammelt werden. Das Scannen der Bücher ist ja doch
etwas mühsam, da muss doch nicht jeder alles selbst machen... Wenn ich
fertig bin, könnte ich z. B. Pettersson und Findus zur Verfügung stellen.
Hast du eine Idee, wie man das realisieren könnte? (Ich bin kein Lehrer,
gehöre also nicht zu irgendeinem "Zusammenschluss", und hab auch keine
eigene Homepage.)
Aber sicher fällt dir und/oder anderen interessierten Kollegen etwas ein...
Ingrid
Danke für das Feedback
> Bau eine Farbkombination als "Standardvariante" ein, die der benutzen
> kann, der mit Spielerei am Computer nix weiter am Hut hat.
So was ähnliches werd ich auch machen.
> > - Präfix/Suffix für den neuen Dateinamen?
> Für wenig geübte Computerbenutzer ist die neue Datei vielleicht leichter
> wiederzufinden, wenn du die Änderung hinten anhängst. (Ich erlebe die
> tollsten Sachen, wenn meine Kollegen Dateien suchen...)
Kann ich nachvollziehen :-)
> > - Die Performance noch ein wenig verbessern.
> Wichtig wäre vielleicht noch der Hinweis, dass man dem Makro bei der
> Arbeit zugucken kann und warten muss, bis es meldet, dass es fertig ist.
Mach ich doch
> > Ich hoffe du hast im ersten Thread von Ingrid den Querverweis gelesen,
dass
> > die Betonung der Silben nicht immer mit der Silbertrennung
übereinstimmt.
> > Aber wenn dir dieses Manko nichts aus macht, dann ist alles klar.
> Ich hab noch nichts gesehen, wo das der Fall war.
Das war im englischen Hinweis drin.
> [...] kann man auch noch mal nacharbeitern.
Wenn es automatsich auch geht, dann lieber nicht ;-)