von Karolus » Mi, 06.12.2006 14:06
Hallo Lutz
Wie lässt sich dieses Problem am geschmeidigsten lösen? (Open Office 1.1)
Mit kreativer Nutzung von ->Extras->Makros aufzeichnen.
Da ich nicht sicher bin, wie gut das in OOo1.1 funktioniert, bin ich für dich mal kreativ geworden :
Code: Alles auswählen
sub sucheanfang
suchdok = thisComponent
suchtab = suchdok.sheets(0) '0→erstes Tabellenblatt
suchtext = suchtab.getcellbyPosition(3,5).string '-->D6
suchen(suchtext,0)
end sub
sub weitersuchen
suchdok = thisComponent
suchtab = suchdok.sheets(0) 'erstes Tabellenblatt
suchtext = suchtab.getcellbyPosition(3,5).string '-->D6
suchen(suchtext,1)
end sub
sub suchen(suchtext,w)
rem aufgezeichneter Code von->su&ersetzen-'suchen', nachträglich sind-
rem - die Variblen 'suchtext' und 'w' eingefügt.
rem define variables
dim document as object
dim dispatcher as object
rem get access to the document
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
dim args1(17) as new com.sun.star.beans.PropertyValue
args1(0).Name = "SearchItem.StyleFamily"
args1(0).Value = 2
args1(1).Name = "SearchItem.CellType"
args1(1).Value = 0
args1(2).Name = "SearchItem.RowDirection"
args1(2).Value = true
args1(3).Name = "SearchItem.AllTables"
args1(3).Value = false 'hier true, falls alle Blätter durchsucht werden sollen
args1(4).Name = "SearchItem.Backward"
args1(4).Value = false
args1(5).Name = "SearchItem.Pattern"
args1(5).Value = false
args1(6).Name = "SearchItem.Content"
args1(6).Value = false
args1(7).Name = "SearchItem.AsianOptions"
args1(7).Value = false
args1(8).Name = "SearchItem.AlgorithmType"
args1(8).Value = 0 '1→'regulärer Ausdruck'
args1(9).Name = "SearchItem.SearchFlags"
args1(9).Value = 65536
args1(10).Name = "SearchItem.SearchString"
args1(10).Value = suchtext '←da ist die Variable
args1(11).Name = "SearchItem.ReplaceString"
args1(11).Value = ""
args1(12).Name = "SearchItem.Locale"
args1(12).Value = 255
args1(13).Name = "SearchItem.ChangedChars"
args1(13).Value = 2
args1(14).Name = "SearchItem.DeletedChars"
args1(14).Value = 2
args1(15).Name = "SearchItem.InsertedChars"
args1(15).Value = 2
args1(16).Name = "SearchItem.TransliterateFlags"
args1(16).Value = 1280
args1(17).Name = "SearchItem.Command"
args1(17).Value = w 'w=0→suchen,w=1→weitersuchen
dispatcher.executeDispatch(document, ".uno:ExecuteSearch", "", 0, args1())
end sub
Speichere den Code in der Standardbiliothek
deines Dokuments, und verknüpfe die schaltflächen mit den Subs 'sucheanfang' und 'weitersuchen'.
Gruß Karo
Hallo Lutz
[quote]Wie lässt sich dieses Problem am geschmeidigsten lösen? (Open Office 1.1) [/quote]
Mit kreativer Nutzung von ->Extras->Makros aufzeichnen.
Da ich nicht sicher bin, wie gut das in OOo1.1 funktioniert, bin ich für dich mal kreativ geworden :
[code]sub sucheanfang
suchdok = thisComponent
suchtab = suchdok.sheets(0) '0→erstes Tabellenblatt
suchtext = suchtab.getcellbyPosition(3,5).string '-->D6
suchen(suchtext,0)
end sub
sub weitersuchen
suchdok = thisComponent
suchtab = suchdok.sheets(0) 'erstes Tabellenblatt
suchtext = suchtab.getcellbyPosition(3,5).string '-->D6
suchen(suchtext,1)
end sub
sub suchen(suchtext,w)
rem aufgezeichneter Code von->su&ersetzen-'suchen', nachträglich sind-
rem - die Variblen 'suchtext' und 'w' eingefügt.
rem define variables
dim document as object
dim dispatcher as object
rem get access to the document
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
dim args1(17) as new com.sun.star.beans.PropertyValue
args1(0).Name = "SearchItem.StyleFamily"
args1(0).Value = 2
args1(1).Name = "SearchItem.CellType"
args1(1).Value = 0
args1(2).Name = "SearchItem.RowDirection"
args1(2).Value = true
args1(3).Name = "SearchItem.AllTables"
args1(3).Value = false 'hier true, falls alle Blätter durchsucht werden sollen
args1(4).Name = "SearchItem.Backward"
args1(4).Value = false
args1(5).Name = "SearchItem.Pattern"
args1(5).Value = false
args1(6).Name = "SearchItem.Content"
args1(6).Value = false
args1(7).Name = "SearchItem.AsianOptions"
args1(7).Value = false
args1(8).Name = "SearchItem.AlgorithmType"
args1(8).Value = 0 '1→'regulärer Ausdruck'
args1(9).Name = "SearchItem.SearchFlags"
args1(9).Value = 65536
args1(10).Name = "SearchItem.SearchString"
args1(10).Value = suchtext '←da ist die Variable
args1(11).Name = "SearchItem.ReplaceString"
args1(11).Value = ""
args1(12).Name = "SearchItem.Locale"
args1(12).Value = 255
args1(13).Name = "SearchItem.ChangedChars"
args1(13).Value = 2
args1(14).Name = "SearchItem.DeletedChars"
args1(14).Value = 2
args1(15).Name = "SearchItem.InsertedChars"
args1(15).Value = 2
args1(16).Name = "SearchItem.TransliterateFlags"
args1(16).Value = 1280
args1(17).Name = "SearchItem.Command"
args1(17).Value = w 'w=0→suchen,w=1→weitersuchen
dispatcher.executeDispatch(document, ".uno:ExecuteSearch", "", 0, args1())
end sub[/code]
Speichere den Code in der Standardbiliothek [b]deines[/b] Dokuments, und verknüpfe die schaltflächen mit den Subs 'sucheanfang' und 'weitersuchen'.
Gruß Karo