Afin d’effectuer une recherche d’une chaîne dans un document oOWriter j’utilise la fonction suivante sous VB Express 2005

 

    Sub RechercherUNO(ByVal sRecherche As String, ByVal sRespecterCasse As Boolean)

        Dim oDispatcherLocal As Object

        oDispatcherLocal = CreateUnoService("com.sun.star.frame.DispatchHelper")

        Dim Arguments(19) As Object

        sRecherche = ConvertToAllowsString(sRecherche)

 

        oSel = oDocument.CurrentController.Frame

        Arguments(0) = MakePropertyValue("SearchItem.StyleFamily", 2)

        Arguments(1) = MakePropertyValue("SearchItem.CellType", 0)

        Arguments(2) = MakePropertyValue("SearchItem.RowDirection", True)

        Arguments(3) = MakePropertyValue("SearchItem.AllTables", False)

        Arguments(4) = MakePropertyValue("SearchItem.Backward", False)

        Arguments(5) = MakePropertyValue("SearchItem.Pattern", False)

        Arguments(6) = MakePropertyValue("SearchItem.Content", False)

        Arguments(7) = MakePropertyValue("SearchItem.AsianOptions", False)

        Arguments(8) = MakePropertyValue("SearchItem.AlgorithmType", 0)

        Arguments(9) = MakePropertyValue("SearchItem.SearchFlags", 65536)

        Arguments(10) = MakePropertyValue("SearchItem.SearchString", sRecherche)

        Arguments(11) = MakePropertyValue("SearchItem.SearchRegularExpression", True)

        Arguments(12) = MakePropertyValue("SearchItem.ReplaceString", "")

        Arguments(13) = MakePropertyValue("SearchItem.Locale", 255)

        Arguments(14) = MakePropertyValue("SearchItem.ChangedChars", 2)

        Arguments(15) = MakePropertyValue("SearchItem.DeletedChars", 2)

        Arguments(16) = MakePropertyValue("SearchItem.InsertedChars", 2)

        Arguments(17) = MakePropertyValue("SearchItem.TransliterateFlags", 1024)

        Arguments(18) = MakePropertyValue("SearchItem.Command", 0)

        Arguments(19) = MakePropertyValue("Quiet", True)

 

        MsgBox(oDispatcherLocal.executeDispatch(oSel, ".uno:ExecuteSearch", "", 0, Arguments))

 

 

    End Sub

 

    Public Function MakePropertyValue(ByVal cName As String, ByVal uValue As Object) As Object

        Dim oStruct As Object

        oStruct = oServiceManager.Bridge_GetStruct("com.sun.star.beans.PropertyValue")

        oStruct.Name = cName

        oStruct.Value = uValue

        MakePropertyValue = oStruct

    End Function

 

Cette fonction marche très bien .. comment la compléter afin de savoir si la recherche a abouti ou non ? Comment savoir aussi le nombre d’instances de la chaîne dans le document ? toujours en utilisanbt les commandes UNO  ….

 

Merci d’avance …

Répondre à