Newsgroup: it.comp.lang.visual-basic
Titolo: copy-find-paste

Ciao a tutti:
Premetto che non mi intendo di vbasic ma mi è utile per le macro in word... 
;]
sto cercando, senza riuscirci, un modo per usare la funzione 'trova' in 
successione per un elenco di termini diversi, ad es. dei nomi.
Costruendo la macro, la funzione mi cerca sempre e solo il primo termine; ad 
es:
#    Selection.GoTo What:=wdGoToPage, Which:=wdGoToNext, Name:="2"
#    Selection.MoveDown Unit:=wdLine, Count:=3
#    Selection.EndKey Unit:=wdLine, Extend:=wdExtend
#    Selection.Copy
#    Selection.HomeKey Unit:=wdStory
#    Selection.EndKey Unit:=wdLine, Extend:=wdExtend
#    Selection.paste
In questo modo ho il nome da cercare all'inizio della prima pagina (ogni 
volta diverso, perché la riga 3 di pag 2 si modifica ad ogni uso di un'altra 
macro).
Ad es se prima c'era Maria ora c'è Pietro.
Il fatto che la macro che mi interesserebbe dovrebbe ora selezionare Pietro 
sulla prima riga della prima pag e cercarlo (sempre nella prima pag) ma 
continua a cercare Maria:
# Selection.HomeKey Unit:=wdStory
#     Selection.EndKey Unit:=wdLine, Extend:=wdExtend
#     Selection.Copy
#     Selection.Find.ClearFormatting
#     With Selection.Find
#         .Text = "Maria"
#         .Replacement.Text = ""
#         .Forward = True
#         .Wrap = wdFindAsk
#         .Format = False
#         .MatchCase = False
#         .MatchWholeWord = False
#         .MatchWildcards = False
#         .MatchSoundsLike = False
#         .MatchAllWordForms = False
#     End With
#     Selection.Find.Execute
# End Sub
C'è un modo per eliminare l'inconveniente?
Grazie in anticipo.
-- 
... di parti non so niente. Io vado per la mia strada...

 word... ;]
...
Lo sai che io non vedo una sola istruzione Visual Basic?!
Prova su un NG che si occupa di Office (Word) e/o VBA.

 Lo sai che io non vedo una sola istruzione Visual Basic?!
Ne approfitto per tornare IT:
Magari lo sapevate gią tutti, ma sapete che č possibile passare i parametri
di una sub/funzione in stile assegnamento Pascal senza rispettare l'ordine
dei parametri stessi?
E' quello che fanno Word/Excel quando generano macro:
Selection.EndKey Unit:=wdLine, Extend:=wdExtend
Anni avevo una funzione con 40 parametri tutti opzionali.
Ad ogni chiamata ne usavo 4 o 5 per volta.
La soluzione?
Dichiarazione sub:
sub tantiparametri(optional par1 as tipo, optional par2 as tipo, ...,
optional par40 as tipo)
 ...
end sub
Chiamata sub:
tantiparametri par1:="ciao",par33:="mondo", par12:="ecco"
Adesso non ditemi che avrei potuto fare un type o una classe e passare un
solo parametro :)
termoPilucco

 rispettare l'ordine dei parametri stessi?
è vero, ma non funziona su tutte le funzioni (e nell'help, di solito, è
specificato)
-- 
Salutoni
Sergio
per rispondere... togli il group dall'indirizzo

 è specificato)
Ho letto "Passaggio di argomenti alle routine" dove se ne parla, ma non ho
visto limitazioni per Sub/Function create dal programmatore. Ho letto male?

 Ho letto male?
no, sono io che non ho specificato.
alcune funzioni "precotte" non possono essere utilizzate con la sintassi
nomepar=valorepar, per quelle cucinate in casa credo si possa fare sempre.


 possa fare sempre.
Là dice che per S/F di VBA tutto Ok, non necessariamente per quelle di VB,
precotte, appunto.

 Selection.EndKey Unit:=wdLine, Extend:=wdExtend
Più che altro è comodo quando devi passare dei parametri opzionali e mi 
pare molto più chiaro e elegante un
MioOggetto.MiaSub Saluto:="ciao", Destinatario:="mamma"
che un
MioOggetto.MiaSub ,"ciao", , ,"mamma"