MS-Office-Forum
Google
   

Zurück   MS-Office-Forum > Microsoft Office > Microsoft Word
Registrieren Forum Hilfe Alle Foren als gelesen markieren

Banner und Co.

Antworten
Ads Der Renner, 11 Entwicklertools für Access, Tipps & Trick und offene Datenbanken zum einzigartigen Preis.
Themen-Optionen Ansicht
Alt 16.04.2018, 21:47   #1
zachy
Neuer Benutzer
Neuer Benutzer
Standard VBA - Suchen und Ersetzen --> Schnellbaustein

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
Das hat aber den Nachteil, dass die Formatierungen meines Ersetzungstextes aus dem Schnellbaustein nicht berücksichtigt werden. Ich würde den Code daher gerne so umbauen, dass der gefundene Text markiert wird, und dann an gleicher Stelle der Inhalt des Schnellbausteins eingefügt wird.

Leider weiß ich nicht wie ich das Programmieren soll. Habt ihr eine Idee für mich?
zachy ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 17.04.2018, 07:37   #2
Gerhard H
MOF Guru
MOF Guru
Standard

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
Gerhard H ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 17.04.2018, 18:02   #3
zachy
Threadstarter Threadstarter
Neuer Benutzer
Neuer Benutzer
Standard

Großartig, danke!
zachy ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Ads
Antworten


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Besucher: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge anzufügen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

vB Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist An.
Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:59 Uhr.


Partner und Co.
Access-Paradies -Alles rund um die Datenbank Microsoft Access -Code -Programme-Tools -Tipps   Kostenlose Tipps & Tricks, Downloads und Programme   www.kulpa-online.com - Tipps - Tricks - Tutorials - Meinungen - Downloads uvm...   vb@rchiv · Willkommen in der Welt der VB Programmierung   Access-Garhammer - Hier finden Sie jede Menge Beispiel-Datenbanken zu Access und mehr ...   mcseboard.de   Die Top Seite für Excel-VBA-Makros uvm.

Powered by: vBulletin Version 3.6.2 (Deutsch)
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

Copyright ©2000-2010 MS-Office-Forum. Alle Rechte vorbehalten.
Copyright ©Design: Manuela Kulpa ©Rechte: Günther Kramer
Eine Verwendung der Inhalte in anderen Publikationen, auch auszugsweise,
ist ohne ausdrückliche Zustimmung der Autoren nicht gestattet.
Beachten Sie bitte auch unsere Nutzungsbedingungen.