Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

VB - Word Schnittstelle

Empfohlene Antworten

Veröffentlicht

Hi,

gibt es eine möglichkeit die Suchfunktion von Word für Word-Dokumente auserhalb von Word (hmmm :confused: - also mit VisualBasic :D ) zu benutzen ??

Danke

gruß

MadCro :marine

jep die gibt es dafür muss man nur einen verweis auf MS Word 9.0 Object Library

machen, habe aber immer noch nicht rausgefunden wie das mit dem "suchen" funktioniert


Dim ApWord As New Word.Application


Private Sub Form_Load()

Dim boolGefunden As Boolean

    ApWord.Visible = True

    ApWord.Documents.Open "C:\Test.doc"

    ApWord.Documents(0).Activate

    ApWord.ActiveDocument.Content.Find.Text = "SUCHSTRING"

    ApWord.ActiveDocument.Content.Find.Execute

    If ApWord.ActiveDocument.Content.Find.Found Then

        boolGefunden = True

    Else

        boolGefunden = False

    End If

    ApWord.Documents.Close

    Set ApWord = Nothing

End Sub

Hej LoneGunman danke Dir viellll mals für den Code,

hmmm mein compiler mekert aber bei dieser Zeile hier :

"ApWord.Documents(0).Activate" da sagt er "Das Angeforderte Elemet ist nicht in der Sammlung vorhanden" hmmm

naja egal hab die Zeile mal auskommnetiert und dann hat er nicht mehr gemekert nur findet er den such string nicht in meine Word Dokument

ich habe darauf hin mal so was ausprobiert

ApWord.Selection.Range.Find.Execute("MEINSUCHSTRING", Forward:=True, Wrap:=wdFindContinue)

das funktz auch aber leider findet er nur einmal das Wort "MEINSUCHSTRING" obwohl es öffters vorkommt.

Und noch n kleines Problem, wie bekomme ich Word wieder zu ?

die Zeile :

ApWord.Documents.Close

macht ja nur das dokument zu aber Word bleibt weiter hin offen.

Also mir wäre es noch lieber Word garnicht zu öffnen , sondern nur das Dokument in den Speicher zu laden und dann dort nach meinem String zu suchen, naja ob das so ohne weiters geht

gruß

MadCro :marine

ApWord.Quit

wichtig: ApWord am Ende auf Nothing setzen, sonst kanns passieren, dass Word im hintergrund offen bleibt.

Matze

Sorry MadCro,

hier nochmal der berichtigte und getestete Code.


Dim ApWord As New Word.Application


Private Sub Form_Load()

Dim boolGefunden As Boolean

    ApWord.Visible = True

    ApWord.Documents.Open "C:\Test.doc"

    ApWord.Documents([COLOR=red]1[/COLOR]).Activate

    ApWord.ActiveDocument.Content.Find.Text = "SUCHSTRING"

    ApWord.ActiveDocument.Content.Find.Execute

    If ApWord.ActiveDocument.Content.Find.Found Then

        boolGefunden = True

    Else

        boolGefunden = False

    End If

    ApWord.Documents.Close

    ApWord.Quit

    Set ApWord = Nothing

End Sub

In rot die wichtige Änderung.

hej LoneGunman

sag mal funkzt das bei dir ? also bei mir nicht,

"boolGefunden" ist immer "false" hmmm



Private Sub Form_Load()


       Dim WordApp As New Word.Applicatio


       Dim i As Integer

       i = 0


          WordApp.Visible = False

          WordApp.Documents.Open ("c:\newTest.doc")


        If WordApp.Selection.Range.Find.Execute("Format", Forward:=True,  Wrap:=wdFindContinue) Then

            i = i + 1

        End If



        MsgBox i



       WordApp.Documents.Close

       WordApp.Quit

       Set WordApp = Nothing


 End Sub


also so funktioniert es bei mir nur das problem ist das er nur einmal das gesuchte wort finden, muss ihm irgenwie beibringen weiterzusuchen

Also,

Du musst die Suche in einer Schleife organisieren, im Moment hast Du nur eine IF-Abfrage. Desweiteren musst Du den Rangebreich jedes Mal so modifizieren, so das der bereits gefundene Suchstring nicht mehr im Rangebereich liegt.

Ich mach jetzt mal Mittagspause, danach kann ich Dir das genau erklären. Aber ich habe das Problem erkannt. *g*

@ MadCro

Soll bei Dir die Anzahl der Suchstrings im Gesamttext ausgegeben werden?

hej LoneGunman

jep wir offt das gesuchte wort in einem bestimmten dokument vorkommt

hab auch bissle rumgesucht weil ich dachte das es so was wie einen "Weitersuchen"

Parameter gibt , aber leider nix


Option Explicit

Dim strGesamttext As String


Private Sub btnSuchen_Click()

Dim ApWord As New Word.Application

    ApWord.Visible = True

    ApWord.Documents.Open "[COLOR=red]C:\Test.doc[/COLOR]"

    strGesamttext = ApWord.ActiveDocument.Content

    ApWord.Documents.Close

    ApWord.Quit

    Set ApWord = Nothing

    MsgBox count_string(strGesamttext, "[COLOR=red]SUCHSTRING[/COLOR]")

End Sub


Public Function count_string(ByVal strGesamttext, ByVal strSuchstring) As Integer

Dim intTemp As Integer

    intTemp = 0

    While InStr(strGesamttext, strSuchstring) <> 0

        strGesamttext = Replace(strGesamttext, strSuchstring, "", 1, 1)

        intTemp = intTemp + 1

    Wend

    count_string = intTemp

End Function

Damit sollte es funktionieren, habe ich bei mir getestet. Und mit der Lösung musst Du garnicht so tief in die Wordprogrammierung eingreifen. Die roteingefärbten Sachen musst Du bei Dir durch Deine Werte ersetzen.

hej Ho LoneGunman

das Ding ist ja mal cool, genau so was habe wollte ich progen, naja bei mir hat es da mal bissle länger gedauer :rolleyes: hatte ja einen anderen weg versucht

das funkzt ja wunderbar :floet:

ich DANKE DIR für den code :hodata

aber so richtige Word Suche mit dieser "Word OLE" ist es ja nicht, da hätte man doch gleich mit 'Open' die Datei aufmachen den Inhalt auslesen und drine nach dem String suchen können, oder ?? :o)))

hihi naj Danke Dir trozdem nochmal :e@sy

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.