Hallo zusammen,
heute wurde uns bei der MSDN Hotline unter anderem folgende Frage gestellt:
Ich mache eine Suche in einem Word Dokument mit Visual Studio Tools for Office (VSTO). Jetzt möchte ich die gefundenen Texte bearbeiten. Wie geht das?
Unsere Antwort bzw. unser Lösungsvorschlag darauf war:
Wie das implementiert wird, kann am Besten anhand eines Beispiels machen. Das Beispiel implementiert das folgende Szenario: Ein Word-Dokument mit dem Text "find me, find me, find me" wird erzeugt und gespeichert. Dann wird nach dem Text "find me" gesucht.
Mittels rng.Select() wird jede gefundene Stelle ausgewählt so das diese bearbeitet werden kann. In diesem Beispiel wird die Stelle mit Blau markiert. Ganz am Ende wird in einer MessageBox gezeigt, wie oft der gesuchte Text im Dokument auftritt.
int intFound = 0;
Word.Document document = this.Application.ActiveDocument;
document.Content.Text = "find me, find me, find me";
document.Save();
Word.Range rng = document.Content;
rng.Find.ClearFormatting();
rng.Find.Forward = true;
rng.Find.Text = "find me";
rng.Find.Execute(ref missing, ref missing, ref missing, ref missing, ref missing,
ref missing, ref missing, ref missing, ref missing, ref missing,
ref missing, ref missing, ref missing, ref missing, ref missing);
while (rng.Find.Found)
{
rng.Select();
rng.HighlightColorIndex = WdColorIndex.wdBlue;
intFound++;
rng.Find.Execute(ref missing, ref missing, ref missing, ref missing, ref missing,
ref missing, ref missing, ref missing, ref missing, ref missing,
ref missing, ref missing, ref missing, ref missing, ref missing);
}
MessageBox.Show("Strings found: " + intFound.ToString());
Mehr Informationen über Suchen in einem Word-Dokument mit VSTO findet man auf den folgenden Adressen in MSDN Online:
1. MSDN: Gewusst wie: Suchen nach Text in Dokumenten
2. MSDN: Gewusst wie: Wiederherstellen der Auswahl nach Suchvorgängen
3. MSDN: Gewusst wie: Definieren und Markieren von Bereichen in Dokumenten
4. MSDN: Gewusst wie: Durchlaufen gefundener Elemente in Dokumenten
Viele Grüße,
Atanas Dimitrov
MSDN Hotline für MSDN Online Deutschland
Disclaimer:
Bitte haben Sie Verständnis dafür, dass wir hier auf Rückfragen gar nicht oder nur sehr zeitverzögert antworten können.
Bitte nutzen Sie für Rückfragen oder neue Fragen den telefonischen Weg über die MSDN Hotline:
http://www.msdn-online.de/Hotline

Es gelten für die MSDN Hotline und dieses Posting diese
Nutzungsbedingungen, Hinweise zu
Markenzeichen sowie die allgemein gültigen
Informationen zur Datensicherheit sowie die gesonderten
Nutzungsbedingungen für die MSDN Hotline.