| |
VB.NET - FortgeschritteneWord - Problem mit Formatierung von Textpassage | | | Autor: jan999 | Datum: 21.08.19 15:39 |
| Moin!
ich baue gerade etwas an einem Tool das Worddateien bearbeitet. Wiederkehrend werden an bestimmten Bookmarks Texte einfügt und optional formatiert.
Das habe schon an x Stellen in dem Programm funktioniert. Nur an einem Bookmark nicht. Im Debugger werden alle Passagen korrekt durchlaufen. Aber die farbliche Hervorhebung und Bold werden nicht erstellt.
Das ich an der richtigen Stelle bin zeigt, dass der einzufügende Text platziert wird. Halt nur die Formatierung wird ignoriert!
Hier zunächst mein Code:
''' <summary>
''' Setzen eines Bookmarks
''' </summary>
''' <param name="BookmarkName"></param>
''' <param name="Text"></param>
''' <param name="CreateError">optional Schreiben einer Fehlermeldung (
' default=true) - false bei der Fehlermeldung selber</param>
''' <param name="FontBold">optional FETTE Schrift (default:= false =>
' keine Berücksichtigung) </param>
''' <param name="FontColor">optional Schriftfarbe (default:=
' automatische Farbe)</param>
''' <param name="FontSize">optional Schriftgröße (default:= -1 ...
' deaktiviert)</param>
''' <param name="WithErrorMessage">optional mit Fehlermeldung (default:=
' true)</param>
''' <remarks></remarks>
Public Sub AddBookmark(BookmarkName As String, Text As String, _
Optional CreateError As Boolean = True, _
Optional FontBold As Boolean = False, _
Optional FontColor As Word.WdColorIndex = _
Word.WdColorIndex.wdAuto, _
Optional FontSize As Integer = -1, _
Optional WithErrorMessage As Boolean = True)
If _oDoc.Bookmarks.Exists(BookmarkName) Then
Try
_oWord.Selection.GoTo(What:=Word.WdGoToItem.wdGoToBookmark, _
Name:=BookmarkName)
If FontBold = True Then _oWord.Selection.Font.Bold = True
_oWord.Selection.Font.ColorIndex = FontColor
If FontSize > 0 Then
_oWord.Selection.Font.Size = FontSize
End If
_oDoc.Bookmarks.Item(BookmarkName).Range.Text = Text
Catch ex As Exception
AddError4BookmarkTryCatch(BookmarkName, ex.ToString)
End Try
Else
If BookmarkName.ToUpper = "ERROR" Then Exit Sub ' damit es keine
' Endlosscheife wird
If WithErrorMessage = True Then
AddError4BookmarkMissing(BookmarkName)
End If 'WithErrorMessage
End If 'Bookmarks.Exists
End Sub Habe ich da vielleicht irgendetwas übersehen oder hat einer von Euch eine Idee woran es liegen kann??
Gruß Jan | |
Re: Word - Problem mit Formatierung von Textpassage | | | Autor: Cygurd | Datum: 28.09.19 13:37 |
| Hi,
wäre es nicht einfacher, einfach in Word selbst ein Makro zu schreiben? (Od. mit VBA?)
Aber vllt. hilft dir ja das hier weiter:
Gewusst wie: Öffnen Sie ein Word-Dokument in VB Net
https://www.amdtown.com/JOZ2YQ4N/
Gruß,
Cy. | |
Re: Word - Problem mit Formatierung von Textpassage | | | Autor: Cygurd | Datum: 28.09.19 14:29 |
| PS: Du könntest mal etwas in der msdn library schmökern - da findet man immer hilfreiche Antworten, z. B.:
https://msdn.microsoft.com/de-de/windows/apps/bb608603(v=vs.94) | |
Re: Word - Problem mit Formatierung von Textpassage | | | Autor: Cygurd | Datum: 28.09.19 16:41 |
| Mir kam noch eine Idee: Ich weiß ja nicht, welche Version von Word du verwendest, aber falls es eine ältere Version ist, musst du einen Verweis für COM-Komponenten hinzufügen, da diese nicht mehr zur Visual Studio-Entwicklungsumgebung gehören.
Das ginge folgendermaßen:
Im Menü von VS auf Projekt klicken, dann Verweis hinzufügen – wähle nun die Registerkarte COM (auf den Pfeil daneben klicken). Dann im Fenster rechts runterscrollen bis „Microsoft Word 9.0 Object Library" (z. B. bei Word 2000) und davor ein Häkchen setzen. (Od. wähle 10.0 ... etc. od. welche Version du hast.) Dann auf OK klicken.
Falls die Frage erscheint, ob ein Wrapper generiert werden soll, auf JA klicken.
Nun kannst du mit dem Objektbrowser arbeiten: Die Taste F2 betätigen.
Klicke dann auf den Pfeil neben Interop.Word, dann darunter auf Word.
Nun erhältst du eine Liste der von Word offengelegten Automatisierungsobjekte.
Darunter auf Application klicken od. Unterthemen: Es wird eine Liste der Methoden, Eigenschaften und Ereignisse des Application Objekts angezeigt – Eigenschaften, Methoden und Ereignisse, die Word zum Ändern von Informationen in Dokumenten bereitstellt...
OK, ich hoffe, das hilft dir etwas weiter.
Beitrag wurde zuletzt am 28.09.19 um 17:04:08 editiert. | |
| Sie sind nicht angemeldet! Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.
Einloggen | Neu registrieren |
|
|
sevISDN 1.0
Überwachung aller eingehender Anrufe!
Die DLL erkennt alle über die CAPI-Schnittstelle eingehenden Anrufe und teilt Ihnen sogar mit, aus welchem Ortsbereich der Anruf stammt. Weitere Highlights: Online-Rufident, Erkennung der Anrufbehandlung u.v.m. Weitere InfosTipp des Monats sevWizard für VB5/6
Professionelle Assistenten im Handumdrehen
Erstellen Sie eigene Assistenten (Wizards) im Look & Feel von Windows 2000/XP - mit allem Komfort und zwar in Windeseile :-) Weitere Infos
|
|
|
Copyright ©2000-2024 vb@rchiv Dieter Otter Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.
Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel
|
|