Autotext aus VB-Anwendung verwalten

17/09/2007 - 09:24 von Lothar Geyer | Report spam
Ich möchte mit meiner VB-Anwendung folgendes in einem Word-Dokument machen:

1.) eine Tabellenzeile (z.B. Nr. 3) als Autotext speichern, inklusive
aller Formatierungen, Textmarken usw.
2.) einen Autotext (den von 1., also eine Tabellenzeile) nach einer
bestimmten Tabellenzeile einfügen
3.) einen Autotext löschen

Für kurze Kode-Schnipsel wàre ich Euch sehr dankbar.

Lothar Geyer
 

Lesen sie die antworten

#1 Thomas Gahler
18/09/2007 - 12:45 | Warnen spam
Hallo Lothar


1.) eine Tabellenzeile (z.B. Nr. 3) als Autotext speichern, inklusive
aller Formatierungen, Textmarken usw.
2.) einen Autotext (den von 1., also eine Tabellenzeile) nach einer
bestimmten Tabellenzeile einfügen
3.) einen Autotext löschen

Für kurze Kode-Schnipsel wàre ich Euch sehr dankbar.


Ist das kurz genug?







' - - - - -
Option Explicit

Const ateRechZeile As String = "Rechungszeile"

Sub Demo()
procAutotextEintragAnlegen
procAutotextEintragEinfügen
procAutotextEintragEntfernen
End Sub

Public Sub procAutotextEintragAnlegen()
Dim doc As Word.Document
Dim dot As Word.Template
Dim rng As Word.Range
Dim ate As Word.AutoTextEntry

Set doc = ActiveDocument
Set dot = doc.AttachedTemplate

'Autotext-Eintrag anlegen.
Set rng = doc.Tables(1).Rows(2).Range
Set ate = dot.AutoTextEntries.Add(Name:=ateRechZeile, Range:=rng)

dot.Saved = True
End Sub

Public Sub procAutotextEintragEntfernen()
Dim doc As Word.Document
Dim dot As Word.Template
Dim ate As Word.AutoTextEntry

Set doc = ActiveDocument
Set dot = doc.AttachedTemplate

'Prüfen ob Autotext-Eintrag schon vorhanden ist.
For Each ate In dot.AutoTextEntries
If UCase$(ate.Name) = UCase$(ateRechZeile) Then
dot.AutoTextEntries(ateRechZeile).Delete
End If
Next ate

dot.Saved = True
End Sub

Public Sub procAutotextEintragEinfügen()
Dim doc As Word.Document
Dim dot As Word.Template
Dim tbl As Word.Table
Dim rng As Word.Range

Set doc = ActiveDocument
Set dot = doc.AttachedTemplate
Set tbl = doc.Tables(1)

Set rng = tbl.Rows(tbl.Rows.Count).Range
rng.Collapse wdCollapseStart

dot.AutoTextEntries(ateRechZeile).Insert Where:=rng, RichText:=True
End Sub
' - - - - -


Thomas Gahler
MVP für WordVBA
Co-Autor von »Microsoft Word-Programmierung.
Das Handbuch« (MS Press)


- Windows XP (SP2), Office XP (SP3)

Ähnliche fragen