Inserimento del testo della casella di testo in un foglio di lavoro (Microsoft Excel)
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 (11631) si applica a Microsoft Excel 2007, 2010, 2013, 2016, 2019 ed Excel in Office 365. Puoi trovare una versione di questo suggerimento per l’interfaccia del menu precedente di Excel qui: