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

Ausgeblendeten Text entfernen

106 views
Skip to first unread message

Tristan Steiger

unread,
Nov 13, 2002, 7:44:06 PM11/13/02
to
Hat jemand eine VBA-Codesequenz mit der sämtliche als verborgen
formatierte Zeichen in einem Dokument gelöscht werden können. Mit Suchen
& Ersetzen von Word aus funktioniert es einwandfrei. Bemühe ich den
Macro-Recorder zeichnet der zwar etwas aus, aber beim Playback wird der
verborgenen Text nicht entfernt. Offensichtlich ein Bug im Macro-
Recorder.

Besten Dank

Helmut Weber

unread,
Nov 14, 2002, 2:36:22 AM11/14/02
to
Hallo Tristan
Public Sub RemoveHidden()
Dim WasFound As Boolean
Selection.Collapse
Selection.HomeKey Unit:=wdStory
ActiveWindow.View.ShowHiddenText = True
Selection.Find.ClearFormatting
Selection.Find.Font.Hidden = True
With Selection.Find
.Text = ""
.Replacement.Text = ""
.Forward = True
.Wrap = wdFindContinue
.Format = True
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute
WasFound = Selection.Find.Found
While WasFound
Selection.Cut
Selection.Find.Execute
WasFound = Selection.Find.Found
Wend
ActiveWindow.View.ShowHiddenText = False
Selection.Find.ClearFormatting

End Sub

Da ist viel überflüssiges drin,
z.B. "Wasfound". Aber als ich das schrieb,
wußte ich es noch nicht besser.
Und warum sollte ich es ändern, wenn's doch läuft.
Gruß
Helmut Weber
Aber

Rainer H. Rauschenberg

unread,
Nov 14, 2002, 10:53:24 AM11/14/02
to
On Wed, 13 Nov 2002, Helmut Weber wrote:

> Public Sub RemoveHidden()
> Dim WasFound As Boolean
> Selection.Collapse
> Selection.HomeKey Unit:=wdStory
> ActiveWindow.View.ShowHiddenText = True
> Selection.Find.ClearFormatting
> Selection.Find.Font.Hidden = True

Da gibt es einen bug (zumindest in W97), der es erforderlich macht,
zusaetzlich noch

If Selection.Find.Font.Hidden = False Then
Selection.Find.Font.Hidden = wdToggle
End If

einzubauen. Wenn naemlich Selection.Font.Hidden = True ist, kann man
Selection.Find.Font.Hidden nicht auf True setzen.

Rainer "ist der bug eigentlich in neueren Words gefixt?" Rauschenberg

Tristan Steiger

unread,
Nov 14, 2002, 8:26:41 PM11/14/02
to
Hallo Helmut

Besten Dank für deine schnelle Antwort. Mein Code sieht nicht gross
anders aus:

'Versteckten Text entfernen
LabelText.Caption = "Versteckten Text entfernen"
UserFormFinalPrint.Repaint
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
ActiveWindow.View.ShowHiddenText = True
With Selection.Find
.Text = ""
.Font.Hidden = True


.Replacement.Text = ""
.Forward = True
.Wrap = wdFindContinue
.Format = True
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With

Selection.Find.Execute Replace:=wdReplaceAll

Allerdings hat meine "Lösung" einen kleinen Haken. Das Ergebnis ist
genau das umgekehrte von dem, was ich wollte: Am Schluss bleibt nur der
versteckte Text übrig, alles andere ist gelöscht worden. Seltsam, also
habe ich spasseshalber .Font.Hidden auf False gesetzt. Das Erstaunliche:
das Resultat blieb das gleiche. Hat jemand eine Ahnung, woran das liegt
und wie man meinen Code so modifiziert, dass das gewünschte Resultat
dabei herauskommt?

Tristan Steiger

unread,
Nov 15, 2002, 4:37:35 PM11/15/02
to
Hallo Helmut

> sorry, wenn ich Deinen Code bei mir ausführe,
> tut sich gar nichts. Vermutlich hatte ich vor
> Jahren das gleiche Problem wie Du, war aber
> mit einer Lösung zufrieden, ohne zu wissen,
> warum andere Ansätze nicht funktionieren.
> Viel Spaß beim Forschen.
Ich hab in der Tat ein bisschen geforscht. Ich habe deinen Code in mein
VBA-Programm eingebaut. Ergebnis: Das gleiche, wie bei der Codesequenz,
die ich bereits gepostet hatte, es wird der _nicht_ versteckte Text
statt der versteckte Text entfernt. Habe dann den Verbesserungsvorschlag
von Rainer eingebaut und siehe da, plötzlich lief es. Verwende Office XP
ohne SP, der Bug ist also immer noch da. Als Delphi-Programmierer ärgert
man sich mit VBA schwarz und blau. Danke Helmut und Rainer, jetzt
läuft's!

Gruss Tristan

Ingo Lang

unread,
Dec 7, 2002, 3:07:49 PM12/7/02
to
Tristan Steiger <in...@poker-soft.com> wrote in message news:<MPG.183f4b55...@news.bluewin.ch>...

Hallo Tristan,

könntest Du den gesamten funktionierenden Code bitte hier
veröffentlichen ? Das würde mir ein riesen Problem vom Hals schaffen.

Danke und Grüße,
Ingo

Klaus Linke

unread,
Dec 8, 2002, 9:22:13 PM12/8/02
to
Hi Ingo,

Eine ganz normale Suche (ausgeblendeten Text durch "" ersetzen) wie von
Tristan zunächst gepostet funktioniert, wenn du in "With Selection.Find"

.Font.Hidden = True

durch

.Font.Hidden = wdToggle

ersetzt. Wie Rainer gesagt hat, gibt es einen Bug: Wenn der Beginn des
Dokuments verborgenen Text enthält, löscht Word gerade das verkehrte.

Gruß, Klaus

0 new messages