› Excel e gli applicativi Microsoft Office › Stranezze di Word
-
AutoreArticoli
-
Qualcuno mi sa dire perchè pure essendo prevista dall'Intellisense del VBA di Word un tipo di variabile denominata Word
quando vado a compilare il codice mi dà errore
Se invece scrivo semplicemente Dim parola (senza specificare il tipo) la macro funziona senza problemi.
Avevo messo due immagini su PostImages ma non so come inserirle qui
Ringrazio in anticipo che volesse chiarire l'arcano
ciao
Al penso le debba allegare da percorso PC
Ma alla fine non è necessario.
In un modulo di documento Word basta scrivere Dim parola As nel momento in cui scrivi As si apre l'Intellisense mostrandoti tutte le voci tra le quali scegliere quella pertinente e come c'è String, Integer ecc. c'è anche Word.
Quindi se è scritto Dim parola As Word e compilo il codice questo va in errore
Ad esempio se su un documento word ho scritti vari indirizzi mail questa macro me li conta
Sub ContaIndirizziMail() Dim para As Paragraph Dim paro Dim cnt As Long Dim rng As Object Set rng = ActiveDocument.Content For Each para In ActiveDocument.Paragraphs For Each paro In para.Range.Words If InStr(paro, "@") <> 0 Then cnt = cnt + 1 End If Next MsgBox cnt End SubMa se scrivo Dim paro as Word la macro va in errore.
Qui mi sa che ci vuole Vecchio Frac
Va in errore perche' Word e' la libreria, lo spazio dei nomi, e non puo' essere istanziato.
Esiste l'insieme Words ma il singolo elemento non e' Word... e al momento non riesco a individuarlo 🙂
Ma allora perchè se scrivo Dim paro e poi For Each paro In para.Range.Words funziona?
Io pensavo che Word nell'intellisense fosse un tipo di variabile al pari di Integer, String ecc.
Nel tuo esempio "paro" e' Variant e quindi un tipo indefinito, che occupa un mucchio di byte... Bisogna cercare qual e' ogni oggetto che identifica l'insieme Words. Molto probabilmente e' un insieme di Characters. Vai di Visualizzatore Oggetti e spulcialo 🙂
Trovato, e' Item.
Sicche' Words.Item e' l'elemento che cercavamo e quando iteri in Words di fatto ottieni un oggetto Item che ritorna un oggetto di tipo Range (non nel senso di Excel naturalmente).
https://learn.microsoft.com/it-it/office/vba/api/word.words.item
Ma poi questo Thread è morto cosi? Strano che non c'è alcun riscontro. Altrove sarebbero partiti missili terraria.
Altrove sarebbero partiti missili terraria

Ma poi questo Thread è morto cosi? Strano che non c'è alcun riscontro. Altrove sarebbero partiti missili terraria.
non è il primo caso.
ce ne sono altri ed ancora ce ne saranno... e pure senza file di esempio allegato
Cit. "chi è senza peccato scagli la prima pietra"
fonte: https://it.wikipedia.org/wiki/Qui_sine_peccato_est_vestrum_primus_lapidem_mittat
-
AutoreArticoli
