![]() |
|
![]() |
#1 |
![]() Neuer Benutzer |
![]() Hallo ins Forum,
ich versuche mich gerade am Suchen und Ersetzen in Microsoft Word 2016 mit VBA. Ich möchte in meinem Dokument einen Text finden und diesen gegen den Inhalt eines Schnellbausteins austauschen. Bislang mache ich es so, dass ich meiner Prozedur den Suchtext sowie den Ersetzungstext (Inhalt des Schnellbausteins) als String-Variablen übergebe: Code: Sub sub_Suchen_Und_Ersetzen(str_Suchtext As String, str_Ersetzungstext As String) 'Cursor an den oberste Position bewegen Selection.HomeKey Unit:=wdStory 'Eventuelle Formateigenschaften im Finden-Dialog entfernen Selection.Find.ClearFormatting Selection.Find.Replacement.ClearFormatting With Selection.Find .Text = str_Suchtext .Replacement.Text = str_Ersetzungstext .Forward = True .Wrap = wdFindContinue End With Selection.Find.Execute Replace:=wdReplaceAll End Sub Leider weiß ich nicht wie ich das Programmieren soll. Habt ihr eine Idee für mich? |
![]() |
![]() ![]() |
![]() |
#2 |
![]() MOF Guru |
![]() Hallo zachy,
das könntest du z.B. so machen (in diesem Beispiel ist der Autotext in der Dokumentvorlage gespeichert, auf der das aktive Dokument beruht): Code: Sub ersetzDurchAutotext() Dim suchtext As String, atName As String suchtext = "mein Text" atName = "at_NeuerText" 'Name des Autotextes Selection.HomeKey With Selection.Find .Text = suchtext Do While .Execute = True 'Autotext einfügen Application.Templates(ThisDocument.AttachedTemplate.FullName).BuildingBlockEntries(atName).Insert _ where:=Selection.Range Loop End With End Sub __________________ GrußGerhard |
![]() |
![]() ![]() |
![]() |
#3 |
Threadstarter
![]() ![]() Neuer Benutzer |
![]() Großartig, danke!
|
![]() |
![]() ![]() |