Ho un documento Word nel quale a ciascun titolo è associato un
segnalibro, con un nome specifico creato secondo determinate
convenzioni. Quello che voglio fare è costruire un foglio Excel
contenente (tra le altre cose) le relazioni "titolo paragrafo-nome
segnalibro". Per fare questo ho approntato la struttura del foglio
Excel ed ho approntato un pulsante che lancia la mia macro di
acquisizione dati (il tutto è parametrizzato, usando un worksheet
"setup" con il nome del documento ed il percorso).
Cosa faccio:
Sub AggiornaDati()
Dim wrd As Object
Dim percorsoDocumento As String
Dim nomeDocumento As String
percorsoDocumento = Sheets("Setup").Cells(3, 9)
nomeDocumento = Sheets("Setup").Cells(4, 9)
'se il percorso è specificato...
If Trim(nomeDocumento) <> "" Then
'...e non termina con backslash, lo aggiungo
If Right(percorsoDocumento, 1) <> "\" Then
percorsoDocumento = Trim(percorsoDocumento) + "\"
End If
'altrimenti, setto il percorso alla path del file Excel
Else
percorsoDocumento = Application.ActiveWorkbook.Path + "\"
End If
If Trim(nomeDocumento) = "" Then
MsgBox "Specificare il nome del documento Word nel foglio Setup!",
vbCritical
Exit Sub
End If
nomeDocumento = Trim(nomeDocumento)
IsWordRunning = ApplicationIsRunning("Word.Application")
If IsWordRunning = True Then
Set wrd = GetObject(, "Word.Application")
Else
Set wrd = CreateObject("Word.Application")
End If
' wrd.Visible = True
wrd.Documents.Open (percorsoDocumento + nomeDocumento)
------>wrd.Selection.GoTo What: wdGoToBookmark<------
wrd.Selection.Find.ClearFormatting
wrd.Selection.Find.Replacement.ClearFormatting
With wrd.Selection.Find
.Text = ","
.Replacement.Text = ""
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
wrd.Selection.Find.Execute Replace:=wdReplaceAll
wrd.Selection.WholeStory
wrd.Selection.Copy
Sheets("Foglio1").Select
Range("A1").Select
ActiveSheet.PasteSpecial Format:="Testo", Link:=False, DisplayAsIcon:=
_
False
wrd.Quit
Set wrd = Nothing
End Sub
Lasciando perdere il fatto che la procedura non è terminata, e non è
nemmeno così che funzionerà :-P , io so che la riga evidenziata è
sbagliata. Quale sintassi devo adottare per far sì che funzioni?
Grazie mille per il supporto
Fabio Pagni
> ------>wrd.Selection.GoTo What: wdGoToBookmark<------
> Lasciando perdere il fatto che la procedura non è terminata, e non è
> nemmeno così che funzionerà :-P , io so che la riga evidenziata è
> sbagliata. Quale sintassi devo adottare per far sì che funzioni?
Io non ho capito cosa vorresti ottenere con quell'istruzione, ma ho
capito che ha a che fare col modello di oggetti di Word e non di Excel,
quindi faresti meglio a chiedere su microsoft.public.it.office.word
specificando meglio cosa vuoi ottenere.
Magari prima di postare fai una ricerca tipo:
http://groups.google.com/groups?as_q=bookmarks&as_ugroup=microsoft.public.it.office.word
per vedere se trovi l'ispirazione.
--
Tiziano Marmiroli
Microsoft MVP - Office System
> Salve a tutti. Sto usando Office 2002 e la mia necessità è la
@Tiziano: ho postato sul NG Excel perché io so come fare operazioni
sui bookmark dal VBA di Word, il problema è come farle da Excel, dato
che la sintassi del comando con i due punti non è accettata dal VBA di
Excel. Proverò cmq a chiedere aiuto anche nell'altro NG.
Quello che voglio fare con quell'istruzione è cercare il bookmark
successivo alla posizione del cursore. All'apertura del documento Word
il cursore è come se si trovasse all'inizio. In pratica equivale
all'operazione "Vai a..Segnalibro" effettuabile dall'interfaccia utente
di Word.
Quello che intendo fare è, una volta posizionato il cursore,
selezionare il titolo e copiarlo nella clipboard. Il resto dovrebbe
essere facile.
@elby: grazie dell'aiuto. in effetti l'istruzione che hai postato è
proprio quella che intendo fare, ma la sintassi con i due punti e
l'uguale non mi viene accettata dal VBA di Excel, per cui volevo sapere
se avevate idea di come fare.
Grazie di nuovo
Fabio
elby ha scritto:
> @Tiziano: ho postato sul NG Excel perché io so come fare operazioni
> sui bookmark dal VBA di Word, il problema č come farle da Excel, dato
> che la sintassi del comando con i due punti non č accettata dal VBA di
> Excel.
Neanche da quello di Word. O meglio: i due punti servono a separare due
istruzioni scritte sulla stessa riga.
wrd.Selection.GoTo What:=wdGoToBookmark
alla fine mancava il riferimento alla libreria di Word nei
riferimenti...
grazie a tutti e due x l'aiuto
ciao, alla prossima