Come eseguire un'applicazione Windows con Excel VBA

May 17

Come eseguire un'applicazione Windows con Excel VBA


In alcune situazioni, si consiglia di aprire una seconda applicazione di Windows, pur operando in un'altra applicazione come Excel. VBA, abbreviazione di Visual Basic, Applications Edition, fornisce un metodo che utilizza un paio di righe di codice per invitare un'altra applicazione come Microsoft Word mentre si lavora con Excel. Anche se si potrebbe fare la stessa cosa, semplicemente utilizzando il comando "Start" per aprire la seconda applicazione, utilizzando VBA fa la seconda esecuzione del programma in modo asincrono. Vale a dire, il controllo ritorna immediatamente in Excel, che continua l'esecuzione di calcoli senza cambiare all'altra applicazione manualmente.

istruzione

1 Aprire una nuova cartella di lavoro in Microsoft Excel. Fare clic sulla scheda "Sviluppatore" nel menu di livello superiore. Se non vedi questa opzione, fare clic sul pulsante "Office" nell'angolo in alto a sinistra Excel. Seleziona "Opzioni di Excel" dalla finestra e fare clic sulla casella accanto a "Mostra scheda Sviluppo sulla barra multifunzione." Fare clic su "OK".

2 Fare clic sulla scheda "Visual Basic" ora visibile nella riga di Opzioni sviluppatore. Questo apre un Visual Basic, Applications Edition (VBA) Finestra di sviluppo.

3 Fai clic su "Visualizza" nella lista dei menu in alto nella finestra di sviluppo. Fai clic su "Codice" dall'elenco a discesa.

Inserire il seguente codice:

Private Sub CommandButton1_Click ()
Dim NomeApp As String
'La riga successiva imposta un modo per voi di scegliere l'applicazione di Windows
'NomeApp = InputBox ( "Inserire il percorso e il nome del file eseguibile dell'applicazione")
'La riga successiva mostra come è necessario inserire il percorso e il nome del file eseguibile per l'App
'AppName = "C: \ Program Files (x86) \ Microsoft Office \ Office12 \ Winword.exe"
'Se l'applicazione è nel percorso normale, come Word, Blocco note, Excel IE, e altri standard di Microsoft' sono, allora non è necessario il percorso completo. Inserire solo l'eseguibile del programma vero e proprio, come si vede.
AppName = "winword.exe"
Shell AppName, vbNormalFocus
End Sub

Nota: Le linee che iniziano con apostrofi non eseguire.

4 Tornare alla schermata del foglio di lavoro, parzialmente nascosto dietro le finestre di codifica. Fare clic sull'icona rivolto verso il basso nella scheda "Inserisci" del menu Developer. Fare doppio clic sull'icona "pulsante di comando" nella sezione "controlli ActiveX". Ciò aggiunge il pulsante per il foglio di calcolo di Excel con il nome predefinito di "CommandButton1." Drag questo tasto con il mouse in una posizione out-of-the-way nel foglio di lavoro. Fare doppio clic sul pulsante per verificare che il codice inserito al punto 3 si presenta. Se ciò non avviene, controllare lo schermo del codice, in particolare per garantire il nome del sub (subroutine) sopra corrisponde al nome sul pulsante di comando.

5 Salvare il foglio di calcolo come una versione con attivazione macro. Chiudere il file foglio di calcolo. Riaprirlo, e quando messo in guardia circa l'esecuzione delle macro, selezionare l'opzione "Attiva macro".

6 Fai clic su "Home" sul menu di primo livello. Fare clic sul pulsante creato sul foglio di lavoro e di Microsoft Word si aprirà. Ritorna alla sezione di codice VBA e modificare le linee di codice per abbinare le applicazioni che si desidera eseguire. Rimuovere l'apostrofo nella riga che inizia " 'NomeApp Box = ingresso" per renderlo eseguibile. Verrà quindi richiesto per un'applicazione. Eliminare le righe che cominciano 'NomeApp = "Winword.exe" e' NomeApp = "C: \ Programmi" in modo da poter eseguire qualsiasi applicazione che si desidera.

Consigli e avvertenze

  • Vesti il ​​tuo programma di rinominando il CommandButton per qualcosa di più significativo, come "Esegui un'altra applicazione." Tasto destro del mouse sul pulsante e selezionare "Proprietà" per cambiare il back-colore, font e altre apparizioni.
  • A causa della natura asincrona del comando Shell, a seconda delle azioni intraprese sotto il comando, il processo non può finire prima l'istruzione successiva viene eseguito. Secondo "Mastering VBA", "questo può causare errori nelle procedure se comandi successivi dipendono dalla dichiarazione Shell aver eseguito".