Copia VBA negli appunti

Questo articolo dimostrerà come utilizzare VBA per copiare elementi negli Appunti.

Potrebbe esserci un momento in cui desideriamo copiare le informazioni in Excel VBA e archiviarle per utilizzarle all'interno di un'altra applicazione o in un altro momento in cui la macro di Excel ha smesso di funzionare. Quando una macro interrompe l'esecuzione, le informazioni memorizzate in una o più variabili smettono di esistere e non possono più essere recuperate. Un modo per risolvere questo problema sarebbe copiare queste informazioni negli appunti.

Copia negli Appunti utilizzando la libreria di oggetti HTML

Il modo più semplice per utilizzare gli appunti in Excel VBA è chiamare la libreria di oggetti HTML.

1234567 Sub StoreData()Dim varText come varianteDim objCP As ObjectvarText = "Alcuni testi copiati"Imposta objCP = CreateObject("HtmlFile")objCP.ParentWindow.ClipboardData.SetData "testo", varTextFine sottotitolo

Poiché utilizziamo l'associazione tardiva dichiarando la variabile objCP come oggetto, non è necessario aggiungere un riferimento a Excel per far funzionare questa procedura.

Se ora dovessimo passare al nostro foglio di lavoro Excel e fare clic su Incolla, il testo "Alcuni dati copiati" verrebbe inserito nella cella selezionata.

Se dovessimo cambiare questa procedura sopra in una funzione, potremmo passare il testo da copiare come variabile.

12345 Funzione StoreData(varText As Variant) as StringDim objCP As ObjectImposta objCP = CreateObject("HtmlFile")objCP.ParentWindow.ClipboardData.SetData "testo", varTextFine funzione

Potremmo quindi chiamare questa funzione più volte nel nostro codice VBA come e quando abbiamo bisogno di copiare il testo negli appunti. Il testo non verrebbe quindi codificato nel codice VBA.

123 Sotto CopyData()StoreData "Testo copiato"Fine sottotitolo

Possiamo anche usare l'Oggetto HTML per restituire il testo dagli appunti - cioè Incollare. Per questo utilizziamo il metodo GetData anziché il metodo SetData.

12345 Funzione ReturnData()Dim objCP As ObjectImposta objCP = CreateObject("HtmlFile")ReturnData = objCP.parentWindow.clipboardData.GetData("testo")Fine funzione

Possiamo quindi chiamare questa funzione per restituire i dati memorizzati negli appunti.

123 Sub PasteData()MsgBox ReturnDataFine sottotitolo

Un bel trucco sarebbe combinare le 2 funzioni insieme in modo da poter utilizzare la stessa funzione per copiare e incollare i dati, a seconda che inviamo o meno i dati negli appunti o se desideriamo recuperare i dati dagli appunti.

1234567891011 Funzione StoreOrReturnData(StrText opzionale As String) As StringDim varText come varianteDim objCP As ObjectImposta objCP = CreateObject("HtmlFile")varText = strTextSe strText "" AlloraobjCP.ParentWindow.ClipboardData.SetData "testo", varTextAltroStoreOrReturnData = objCP.ParentWindow.ClipboardData.GetData("testo")Finisci seFine funzione

Nel codice sopra, possiamo rendere facoltativa la variabile strText - questo significa che se desideriamo Copiare i dati, includeremo il testo da copiare, ma se desideriamo Incollare i dati, lo escluderemo.

Assegneremo quindi la variabile stringa (strText) a una variabile Variant in modo che venga archiviata nel metodo SetData dell'oggetto file HTML.

Per copiare i dati, possiamo utilizzare questa procedura, nota che stiamo includendo il testo da copiare.

123 Sotto CopyData()StoreOrReturnData "SomeCopiedText"Fine sottotitolo

Per incollare i dati, possiamo utilizzare questa procedura. La finestra di messaggio mostrerà il valore memorizzato negli appunti.

123 Sub PasteData()MsgBox StoreOrReturnDataFine sottotitolo

Aiuterete lo sviluppo del sito, condividere la pagina con i tuoi amici

wave wave wave wave wave