(troppo vecchio per rispondere)
la funzione di ricerca in Word
sp
2006-01-23 06:03:36 UTC
Salve.
Sto preparando una tesi con Word; ho numerato le pagine ed ora vorrei che se
con la funzione 'cerca' , o qualche altra equivalente, chiedo di trovare un
termine qualunque , ad esempio 'Dante', il programma mi fornisca in quali
pagine questo termine si trova. Insomma alla fine della ricerca il
risultato dovrebbe essere del tipo : Dante pagg. 3,7 ecc.
A me pare che in word 2000 una tale funzione non ci sia , però non sono
molto pratico del programma....
Se in Word non ci fosse una funzione del genere, esiste qualche altro
programma con una tale funzione ?
vi ringrazio
Francesco
22 gennaio 2006
Giovanni Zezza
2006-01-23 12:08:47 UTC
Post by sp
Sto preparando una tesi con Word; ho numerato le pagine ed ora vorrei che se
con la funzione 'cerca' , o qualche altra equivalente, chiedo di trovare un
termine qualunque , ad esempio 'Dante', il programma mi fornisca in quali
pagine questo termine si trova. Insomma alla fine della ricerca il
risultato dovrebbe essere del tipo : Dante pagg. 3,7 ecc.
A me pare che in word 2000 una tale funzione non ci sia , però non sono
molto pratico del programma....
Esattamente in questi termini, direi di no, è possibile però generare
automaticamente un indice sulla base di un "file di concordanza".

Guarda l'help in linea, perché è una procedura un po' complessa da spiegare
qui; in sostanza comunque nel file di concordanza elenchi le voci che vuoi
compaiano nell'indice sulla base dell'occorenza di certe parole. L'indice
viene poi generato automaticamente.
Post by sp
Se in Word non ci fosse una funzione del genere, esiste qualche altro
programma con una tale funzione ?
Non so se ci sia una qualche aggiunta che provveda qualcosa del genere (ci
sono certamente programmi per la creazione automatica di indici, che però
non è detto che lavorino su documenti di Word).

Non dovrebbe essere complicato scrivere una macro che faccia il lavoro, se
non si hanno troppe pretese sul risultato. La cosa difficile non è trovare
tutte le occorrenze di una parola e in quale pagina si trovano, ma filtrare
quelle veramente pertinenti a quello che si sta cercando.

Un indice automatico è spesso poco utile perché c'è troppa roba, non perché
ce n'è poco. Può comunque essere un'utile base per costruire un indice più
sofisticato.

Ciao.
Giovanni Zezza
2006-01-23 15:09:07 UTC
Post by Giovanni Zezza
Non dovrebbe essere complicato scrivere una macro che faccia il lavoro
Per esempio, giusto per cominciare:

== File: frCerca.frm ==
VERSION 5.00
Begin {C62A69F0-16DC-11CE-9E98-00AA00574A4F} frmCerca
Caption = "UserForm1"
ClientHeight = 3225
ClientLeft = 45
ClientTop = 330
ClientWidth = 4710
StartUpPosition = 1 'CenterOwner
End
Attribute VB_Name = "frmCerca"
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False

Private Sub cbOk_Click()
frmCerca.Hide
Dim brano As Range
Dim trova As Find
Dim Pagine As String
Set brano = ActiveDocument.Range(0, 0)
Set trova = brano.Find
With trova
.ClearFormatting
.Forward = True
.Text = frmCerca.txtCerca.Text
.Execute
While .Found
Pagine = Pagine & _
brano.Information(wdActiveEndAdjustedPageNumber) & ", "
.Execute
Wend
End With
MsgBox frmCerca.txtCerca.Text & ": " & Pagine, vbOKOnly, "Pagine trovate"
End Sub
=== EOF ==

Ciao.
Giovanni Zezza
2006-01-23 16:13:58 UTC
Post by Giovanni Zezza
== File: frCerca.frm ==
...
=== EOF ==
Che bastardo! credevo che salvasse in chiaro anche i controlli del form
(come Visual Basic), invece evidentemente vanno nel file binario .frx, che
ovviamente non posso pubblicare.

Per far funzionare l'esempio, bisogna creare un form di nome frmCerca, con
un bottone di comando di nome cbOk, e un textbox di nome txtCerca; quindi
incollare il testo della sub cbOk_Click nella finestra del codice del form.

Ciao.