środa, 2 września 2015

Microsoft Word- zamiana tekstu na obiekt ContentControl (lub inny)

Operacja do wykonania wydaje się być prosta- określone wystąpienie tekstu w dokumencie chcemy zamienić nie na inny tekst lecz na…obiekt. Pierwsza myśl to często- 'jaki jest symbol specjalny dla danego obiektu?'. W istocie, w metodzie .Find możemy zastosować znaki specjalne (Wildcards) w celu wyszukiwania i podmiany tekstu. Tutaj zastosujemy jednak inne i jednocześnie bardzo proste rozwiązanie- w miejscu wyszukanego tekstu po prostu wstawimy (dodamy) interesujący nas obiekt (w przykładzie będzie to ContentControl). Oto przykład wraz z dodatkowymi komentarzami.
01Sub Zamien_tekst_na_ContentControl()
02 
03    'standardowa procedura definicji wyszukiwania
04    Selection.Find.ClearFormatting
05    Selection.Find.Replacement.ClearFormatting
06 
07    With Selection.Find
08    'definiujemy wyszukiwany tekst
09        .Text = "tekst do wyszukania"
10        '.Replacement.Text = … linię dot. zastępowania całkowicie pomijamy
11        .Forward = True
12        .Wrap = wdFindContinue
13        .Format = True
14        .MatchCase = False
15        .MatchWholeWord = False
16        .MatchWildcards = False
17        .MatchSoundsLike = False
18        .MatchAllWordForms = False
19    End With
20 
21    ' w pętli odnajdujemy wszystkie wystąpienia wyszukiwanego tektsu
22    Do While Selection.Find.Execute
23 
24        'wariant A) jeżeli chcemy podmienić tekst na
25            'pusty ContentControl kod pozostaje bez zmian
26        'wariant B) jeżeli chcemy wstawić ContentControl
27            'wokół tekstu należy wykomentować poniższą linię   
28        Selection.Text = ""
29        Selection.Range.ContentControls.Add (wdContentControlRichText)
30 
31    Loop
32End Sub

Brak komentarzy:

Prześlij komentarz