Excel ti consente di posizionare tutti i tipi di oggetti grafici nel tuo foglio di lavoro. Un tipo di oggetto grafico contiene effettivamente testo: una casella di testo.

Se hai un bel po ‘di caselle di testo in un foglio di lavoro, potresti chiederti se esiste un modo per estrarre il testo da ciascuna casella di testo e inserirlo nel foglio di lavoro stesso.

Non c’è alcun comando per farlo; devi invece usare una macro. La seguente macro passa attraverso ogni casella di testo in un foglio di lavoro ed effettua l’estrazione desiderata:

Sub ExtractText()

Dim shp As Shape     Dim sLoc As String

For Each shp In ActiveSheet.Shapes         With shp             If Left(.Name, 8) = "Text Box" Then                 sLoc = .TopLeftCell.Address                 Do Until Range(sLoc) = ""

sLoc = Range(sLoc).Offset(1, 0).Address                 Loop                 Range(sLoc) =.TextFrame.Characters.Text                 .Delete             End If         End With     Next End Sub

Poiché Excel archivia tutte le forme grafiche nella raccolta Forme, è possibile scorrere la raccolta e determinare le forme con cui si desidera lavorare. In questo caso, vengono controllati i primi otto caratteri del nome della forma. Solo se il nome inizia con “Casella di testo”, la macro considera la forma come una casella di testo da cui è possibile estrarre il testo.

Piuttosto che controllare la dicitura “Casella di testo” nel nome, la macro potrebbe anche controllare per vedere quale tipo di forma viene considerato. Se preferisci farlo, allora sostituisci semplicemente la linea di test (If Left …​) con la seguente linea 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 il contenuto esistente della cella venga sovrascritto.) Se non è vuoto, l’indirizzo viene “incrementato” alla cella successiva nella colonna.

Con l’indirizzo di una cella vuota determinato, il testo della casella di testo viene memorizzato nella cella. Il metodo .Delete viene quindi utilizzato per eliminare la casella di testo effettiva.

_Nota: _

Se desideri sapere come utilizzare le macro descritte in questa pagina (o in qualsiasi altra pagina dei siti ExcelTips), ho preparato una pagina speciale che include informazioni utili.

ExcelTips è la tua fonte di formazione economica su Microsoft Excel.

Questo suggerimento (2388) si applica a Microsoft Excel 97, 2000, 2002 e 2003. Puoi trovare una versione di questo suggerimento per l’interfaccia a nastro di Excel (Excel 2007 e versioni successive) qui: