Passa qualsiasi informazione tra le applicazioni VBA usando gli Appunti

Passa qualsiasi informazione tra le applicazioni VBA usando gli Appunti / finestre

Proprio quando pensavo di avere finito il mio ultimo batch di trucchi e suggerimenti VBA Come inviare e-mail da un foglio di calcolo Excel usando gli script VBA Come inviare e-mail da un foglio di calcolo Excel Usando gli script VBA Il nostro modello di codice ti aiuterà a impostare le e-mail automatizzate da in Excel utilizzando Collaboration Data Objects (CDO) e script VBA. Per saperne di più, ho scoperto un'altra tecnica davvero interessante che chiunque può utilizzare per trasferire facilmente le informazioni tra due applicazioni che utilizzano VBA come linguaggio di scripting back-end.

La cosa fantastica di VBA è che ti offre molte delle funzioni e degli strumenti 3 modi per aprire applicazioni e Windows ottimizzato con VB Script [Windows] 3 modi per aprire applicazioni e Windows ottimizzati con VB Script [Windows] Se ce n'è uno cosa che amo fare, è scrivere script VB. Sia che si tratti di un file di Windows Script o di uno script VBA all'interno di un'applicazione, lo scripting offre la possibilità di aggiungere funzionalità alle applicazioni ... Leggi di più che fanno normalmente parte delle applicazioni VB, anche se in una versione un po 'annaffiata.

Una delle parti più frustranti del lavoro con VBA all'interno di applicazioni specifiche, è che non è sempre facile ottenere due applicazioni “parlare” a vicenda. Questo perché tutte le variabili che stai utilizzando sono accessibili solo nell'ambito dell'applicazione stessa, non da qualsiasi altra parte del computer.

Detto questo, lì siamo modi per passare le informazioni Come integrare i dati di Excel in un documento Word Come integrare i dati di Excel in un documento Word Durante la tua settimana lavorativa, ci sono probabilmente molte volte che ti ritrovi a copiare e incollare le informazioni da Excel a Word o viceversa in giro. Questo è il modo in cui le persone spesso producono rapporti scritti ... Leggi di più tra applicazioni basate su VBA come Word o Excel. In molti casi, anche in un ambiente professionale, i programmatori ricorrono alla comunicazione tra applicazioni con file di dati. Questo può funzionare, ma introduce un elemento di potenziale manomissione o errore - come la cancellazione o la modifica di quei file - per rovinare i lavori.

Un altro approccio che puoi provare per transazioni di informazioni molto veloci tra le applicazioni sta trasferendo i dati negli appunti e poi leggendo le informazioni dall'altra applicazione.

Passare informazioni usando gli appunti

In questo esempio, ho intenzione di mostrarti come passare tre pezzi di informazioni di testo - valori all'interno di 3 campi di testo - direttamente in un foglio di calcolo di Excel che la macro di Word lancia.

La configurazione iniziale è mostrata sotto. È un documento di Word in cui sono passato alla modalità progettazione e ho creato 3 etichette e 3 campi di testo per consentire all'utente di digitare informazioni. Cliccando sul “Sottoscrivi” pulsante avvierà il codice di trasferimento dati.

Fai doppio clic sul nuovo pulsante che hai creato in modalità Progettazione per entrare nella schermata VB Editor. La prima cosa che vorrai fare è aggiungere il riferimento che ti dà accesso agli appunti del sistema. Fai clic su Strumenti - Riferimenti.

Scorri verso il basso l'elenco di riferimenti e seleziona “Libreria oggetti di Microsoft Forms 2.0”. Dopo aver fatto clic su OK, la sessione di modifica VB ora ha accesso ai metodi che consentono di leggere o scrivere dagli Appunti.

Questo è esattamente quello che faremo ora. Nella funzione per “Sottoscrivi” pulsante, ho inserito il seguente codice.

Dim strClipText As DataObject Dim strInputText As String Dim errCode As Integer Set strClipText = New DataObject strInputText = ThisDocument.txtBox1.Value & "," & ThisDocument.txtBox2.Value & "," & ThisDocument.txtBox3.Value strClipText.SetText strInputText strClipText. PutInClipboard 'Set objWB = objExcel.Workbooks.Open ("c: /temp/MyExcelFile.xlsm") errCode = Shell ("C: \ Programmi (x86) \ Microsoft Office \ Office12 \ excel.exe c: / temp / MyExcelFile .xlsm ")

Guarda come è semplice? L'oggetto dati strClipText è l'oggetto appunti che è possibile manipolare. Prima di tutto, leggi tutti i valori dei campi in una variabile a stringa singola, con ogni campo dati delimitato da una virgola o qualsiasi cosa lavori per te.

Successivamente, avrai bisogno di creare il file Excel che stai aprendo nel comando Shell sopra. In Excel, vuoi aggiungere lo stesso riferimento a “Libreria oggetti di Microsoft Forms 2.0”, e quindi nella funzione Workbook.Open (), è possibile eseguire il seguente script.

Dim msObj As MSForms.DataObject Dim strText As String Dim strResult () As String Dim intArrayCount As Integer Dim x As Integer Set msObj = New MSForms.DataObject msObj.GetFromClipboard strText = msObj.GetText strResult () = Split (strText, "," ) intArrayCount = Application.CountA (strResult) Per x = 0 Per intArrayCount - 1 ThisWorkbook.Sheets ("Sheet1"). Cells (x + 1, 2) .Value = strResult (x) Successivo

Ancora una volta, quando lo attraversi, questo è uno script semplice e molto veloce. Crea l'oggetto MSForms e recupera i dati più recenti dagli Appunti e li inserisce in una variabile stringa. Quindi, divide quella singola variabile di stringa lunga con qualsiasi delimitatore utilizzato in una matrice di singole stringhe e infine passa attraverso la matrice (CountA fornisce la lunghezza della matrice) e restituisce ciascun valore sul foglio nella colonna 2.

Ecco i risultati finali.

Ora, con un po 'di creatività, è possibile utilizzare questa tecnica per avviare qualsiasi applicazione basata su VBA e “incolla” informazioni in esso.

Puoi sempre fare la stessa cosa usando la libreria di riferimento di Excel, ma in tal caso dovresti aprire il file Excel in modo invisibile e manipolare i dati all'interno di quel file. Nel caso precedente, stai letteralmente aprendo l'applicazione Excel e visualizzando il file e lasciando che la macro di avvio in Excel esegua il resto del lavoro.

Ciò è molto utile quando ci sono altre applicazioni, come molte delle applicazioni di interfaccia operatore in molti impianti di produzione, che sono basate su VBA ma potrebbero non avere quelle librerie disponibili per collegare strettamente le due applicazioni. Usare gli appunti in modo automatico come questo è veloce, facile e porta a termine il lavoro.

Dai agli script una prova e facci sapere come funziona sul tuo sistema. Hai dovuto modificarlo? Hai qualche suggerimento su come rendere il codice ancora migliore? Condividi i tuoi pensieri nella sezione commenti qui sotto.

Immagine di credito: File Transfer Image Via Shutterstock

Scopri di più su: Microsoft Excel, Microsoft Word, Programmazione, Foglio di calcolo, Programmazione Visual Basic.