vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
sevDataGrid - Gönnen Sie Ihrem SQL-Kommando diesen krönenden Abschluß!  
 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 - Ein- und Umsteiger
MS Word Code extrem langsam 
Autor: DrHouse
Datum: 04.12.20 18:33

Guten Abend zusammen!

Ich habe begonnen, VB über Visual Studio 2019 im Rahmen einer Windows Forms App (.Net Framework) zu programmieren. -> Klappt auch soweit ganz gut, da ich aus der VBA-Ecke komme.
Nun habe ich allerdings versucht ein Programm zu schreiben, welches Word-Dokumente auf Ihre Formatierungen hin überprüft.

Läuft auch fehlerfrei, nur läuft es im Verglich zum identen VBA-Code aus dem Word-Dokument heraus EXTREM langsam. Für das laden des Word-Dokumentes nutze ich folgendes Segment:

Dim WordApplication As Word.Application = CreateObject("Word.Application")
Dim WordDocument As Word.Document
WordDocument = WordApplication.Documents.Add("MeinDokumentenname.docx")
Später folgt auch ein Aufruf jeden Absatz des Doks durchzugehen und das Format anzupassen, oder neu zuzuweisen:

With WordDocument
  For i = 1 To .Paragraphs.Count
    If .Paragraphs(i).Format.Style.NameLocal = "Überschrift 1" Then
      WordApplication.Selection.Style = "Überschrift 1"
    End If
 
    If .Paragraphs(i).Format.Style.NameLocal = "Überschrift 2" Then
      WordApplication.Selection.Style = "Überschrift 2"
    End If
 
    If .Paragraphs(i).Format.Style.NameLocal = "Überschrift 3" Then
      WordApplication.Selection.Style = "Überschrift 3"
    End If
  Next
End With
Warum mache ich das? Ich soll Dokumente überarbeiten und auf ein Einheitliches Format bringen. Jedoch sind viele Überschriften zB auf "Überschrift 3" formatiert, jedoch wurden manuelle Einrückungen eingestellt. Um das wieder gradezubiegen muss ich jeden Absatz auswählen, und ihm das neue Format zuweisen...

Unter VBA rennt das bei einem 120 Seiten Doc in 3 Minuten. Nur kann ich den Code nicht, oder nur sehr schwach schützen. Zudem hab ich mit VBA deutlich weniger Möglichkeiten der Form und Menügestaltung.

Der gleiche Code braucht aber in meiner Form-App 10 Mintuten im gleichen Dokument.

Folgende Verweise hab ich geladen:

MS Forms 2.0 Object Library
MS VBA Extensibility
OLE Autonomation
MS Excel 16 Object Lib (brauch ich später noch für anderes ;)
MS Word 16 Object Lib

Spannend ist jedoch, dass ich ein anderes Projekt für eine Excel-Geschichte bearbeite und da gibt es keine Verzögerung im VB Code im Vergleich zu VBA.

Tests mit
With WordApplication
.Visible = True 
.Visible = False
 
.ScreenUpdating = False
.ScreenUpdating = True
 
'oder
WordApplication = GetObject(,"Word.Application")
'Anstatt CreateObject
wurden alle schon versucht, keine Besserung/Unterschied...

Hat jemand von Euch eine Idee?
Für Hilfe wäre ich Euch sehr dankbar!

So long,
House

Beitrag wurde zuletzt am 04.12.20 um 18:37:29 editiert.
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
MS Word Code extrem langsam874DrHouse04.12.20 18:33
Re: MS Word Code extrem langsam571effeff05.12.20 10:44
Re: MS Word Code extrem langsam564HenryV07.12.20 08:43

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