Besten Dank
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
> 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
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?
> 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
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
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