vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Erstellen von dynamischen Kontextmen?s - wann immer Sie sie brauchen!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Fortgeschrittene
Word - 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
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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)
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

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