Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

nochmal: Silben einfärben

211 views
Skip to first unread message

Ingrid Kutsche

unread,
May 11, 2004, 4:50:12 PM5/11/04
to
Hallo Leute, im besonderen Thomas Gahler, Helmut Weber und Christian
Freßdorf!

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

Helmut Weber

unread,
May 12, 2004, 5:09:34 AM5/12/04
to
Hallo Ingrid,
für meinen bescheidenen Anteil erübrigt sich die
Frage nach der Erlaubnis zur Weitergabe.
Hätte einen Vorschlag für eine sehr einfache
Bestimmung der Farben, wenn es zwei sein sollen.
Man könnte per Hand den ersten beiden Silben oder
Wörtern oder auch Buchstaben eine Farbe geben,
und die Farbe per Makro bestimmen. Vermutlich müssen
Farbe1 und Farbe2 dann ganz oben, unter Options
definiert werden. Ich hab aber den Code mehr parat.
Sähe dann so aus:
' sub hieß glaube ich Silbeneinfärben
With Selection
.WholeStory
.Collapse
Farbe1 = .Font.Color
While .Font.Color = Farbe1
.MoveRight
Wend
Farbe2 = .Font.Color
.WholeStory
.Collapse
End With
' MsgBox "Farbe 1 = " & Farbe1
' MsgBox "Farbe 2 = " & Farbe2
' verschiedenes weitere
aFarbe = Array(Farbe1, Farbe2)
' usw.
Würde unter XP und 97 funktionieren.
Irrtum vorbehalten. Bessere Ideen gern gesehen.
Es muss aber zwei im Text Farben geben,
sonst wird es eine Endlosschleife.
Gruss
Helmut Weber. MVP
"red.sys" & chr(64) & "t-online.de"
Word 2002, Windows 2000


Thomas Gahler

unread,
May 12, 2004, 5:34:09 AM5/12/04
to
Hallo 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 Kutsche

unread,
May 12, 2004, 4:12:09 PM5/12/04
to
danke Thomas, danke Helmut!

Ingrid

Thomas Gahler schrieb:

Karl Schmitt

unread,
May 13, 2004, 2:32:58 AM5/13/04
to
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!

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

Thomas Gahler

unread,
May 13, 2004, 1:52:36 AM5/13/04
to
Hallo Karl
Hallo Ingrid


> 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 ----------

--

Ingrid Kutsche

unread,
May 14, 2004, 5:08:37 PM5/14/04
to
Hallo Thomas,

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

Ingrid Kutsche

unread,
May 14, 2004, 5:12:39 PM5/14/04
to
Hallo Karl,

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

Thomas Gahler

unread,
May 15, 2004, 4:54:07 AM5/15/04
to
Hallo 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 ;-)

0 new messages