Excel ti consente di posizionare tutti i tipi di oggetti grafici nel tuo foglio di lavoro. Un tipo di oggetto grafico contiene effettivamente del testo: una casella di testo. Se in un foglio di lavoro sono presenti numerose caselle di testo, ti starai chiedendo se esiste un modo per estrarre il testo da ciascuna casella di testo e inserirlo nel foglio di lavoro stesso.
Non esiste alcun comando per farlo; devi invece usare una macro. La seguente macro esamina ciascuna casella di testo in un foglio di lavoro ed effettua l’estrazione desiderata:
Questo contenuto è riservato agli abbonati
Solo gli utenti con Abbonamento VBA Coder oppure Ultimate possono visionarlo.
Se sei già abbonato Accedi per sbloccare il contenuto!
In caso contrario abbonati qui! L'abbonamento è conveniente.
E puoi interromperlo in ogni momento e in completa autonomia.
(puoi renderti conto di quanti siano i contenuti riservati
raggiungendo questa pagina)
Poiché Excel memorizza tutte le forme grafiche nella collezione Shapes, puoi scorrere la collezione e decidere con quali forme desideri lavorare. In questo caso, vengono controllati i primi sette caratteri del nome della forma. Solo se il nome inizia con “TextBox” la macro considera la forma come una casella di testo da cui è possibile estrarre il testo.
Invece di verificare la dicitura “TextBox” nel nome, la macro potrebbe anche verificare quale tipo di forma viene considerato. Se preferisci farlo, sostituisci semplicemente la riga di test (If Left…) con la seguente riga di test:
If shp.Type = msoTextBox Then
La variabile sLoc viene utilizzata per memorizzare la posizione della casella di testo, contenuta nella proprietà .TopLeftCell. Viene quindi utilizzato un ciclo Do per assicurarsi che la cella a cui punta l’indirizzo sia vuota (ciò impedisce che qualsiasi contenuto esistente della cella venga sovrascritto). Se non è vuoto, l’indirizzo viene “spostato” alla cella successiva nella colonna.
Una volta determinato l’indirizzo di una cella vuota, il testo della casella di testo viene memorizzato nella cella. Il metodo .Delete viene quindi utilizzato per eliminare la casella di testo originaria.