Come creare un file Excel utilizzando Visual Basic 6.0

Microsoft ha annunciato all’inizio del 2012 che avrebbe esteso il supporto per i runtime di Visual Basic 6 obsoleti e la sintassi del codice per l’intero ciclo di vita di Windows Vista, Windows Server 2008, Windows 7 e la versione Windows 8 del sistema operativo. Ciò significa che migliaia di aziende che sviluppano e utilizzano applicazioni VB6 possono continuare a farlo, sapendo che i loro programmi funzioneranno correttamente con le ultime versioni di Windows e con i service pack. Alcune aziende che sviluppano programmi VB6 spesso li utilizzano per scopi contabili o di inventario che trarrebbero vantaggio dall’inclusione di un modo per esportare i dati in un foglio di calcolo Excel. Utilizzando una sintassi di codifica VB relativamente semplice, è possibile progettare un pulsante di comando o un’altra opzione di controllo per creare una nuova cartella di lavoro ed esportarvi i dati per l’utilizzo in Excel.

1

Avvia Visual Basic 6 o Visual Basic Express. Apri il file di progetto in cui desideri creare un modulo e un pulsante di comando che crea un foglio di calcolo Excel dai dati selezionati. Apri il modulo nel progetto che visualizza i record che desideri esportare in un foglio di calcolo Excel.

2

Fare clic sull’icona “Control Toolbox” sulla barra degli strumenti VB. Fare clic sul controllo “Pulsante di comando” nel riquadro della casella degli strumenti. Tieni premuto il pulsante sinistro del mouse mentre trascini il controllo nell’area del modulo in cui desideri che venga visualizzato. Rilascia il pulsante del mouse per creare un pulsante di comando in quel punto.

3

Modificare i valori Nome e Didascalia dei pulsanti di comando nel riquadro Proprietà della finestra di progettazione del modulo VB. Modificare la proprietà Name in “cmdExportToExcel” o qualcosa di simile. Allo stesso modo, modificare la proprietà Didascalia in “Esporta dati in un foglio di calcolo Excel” o un altro nome descrittivo del pulsante. Dopo aver modificato il valore della proprietà Caption e premuto “Invio”, VB6 aggiorna il nome dell’etichetta sul pulsante di comando nella finestra di progettazione del modulo.

4

Fare doppio clic sul pulsante di comando per aprire una nuova finestra dell’editor di codice per il controllo. Se imposti la proprietà Name per il pulsante di comando su “cmdExportToExcel”, il codice seguente dovrebbe essere già nella finestra dell’editor:

Private Sub cmdExportToExcel End Sub

5

Copia e incolla il codice seguente tra le istruzioni “Private Sub cmdExportToExcel” e “End Sub”. Tieni presente che il codice seguente include commenti per semplificare la personalizzazione. Puoi lasciare i commenti nel codice, poiché non influenzeranno la sua esecuzione:

Dim tExcel As Object Dim tBook As Object Dim tSheet As Object ‘Crea una nuova cartella di lavoro in Excel Set tExcel = CreateObject (“Excel.Application”) Set tBook = oExcel.Workbooks.Add’ Crea un array con 3 colonne e 50 righe. Si crea un array con un numero di colonne e righe inferiore o superiore in base alle esigenze. Ad esempio, se il recordset ha 5 campi, modifica il valore “3” in “5”. Se sono necessarie più di 50 righe nel nuovo foglio di calcolo Excel, modificare di conseguenza l’istruzione “For r = 1 to 50”. Dim DataArray (da 1 a 50, da 1 a 3) As Variant Dim r As Integer Per r = da 1 a 50 DataArray (r, 1) = “NameOfPrimaryKeyField” & Format (r, “0000”) ‘Assicurati di cambiare “NameOfPrimaryKeyField “Valore nel campo chiave o nel campo indice nel set di dati o nella tabella DataArray (r, 2) = Rnd () * 1000 DataArray (r, 3) = DataArray (r, 2) * 0.7 Avanti” Aggiungi intestazioni di campo al foglio di lavoro su riga 1 Imposta tSheet = tBook.Worksheets (1) tSheet.Range (“A1: C1”). Value = Array (“FirstField”, “SecondField”, “ThirdField”) “Modifica” FirstField “,” SecondField “e” ThirdField “ai nomi dei campi utilizzati nell’origine dati. ‘Continua a trasferire la matrice al foglio di lavoro nella cella A2. Assicurati di modificare i valori “Ridimensiona” se modifichi il numero di righe e colonne create dal codice. tSheet.Range (“A2”). Resize (50, 3) .Value = DataArray ‘Salva la nuova cartella di lavoro ed esci da Excel. Modificare il valore “C: MyWorkbook1.xls” nel percorso della cartella desiderato e nel nome file predefinito. tBook.SaveAs “C: MyWorkbook1.xls” tExcel.Quit

6

Fare clic sull’icona “Salva” sulla barra degli strumenti VB6 per salvare il codice. Chiudi la finestra dell’editor del codice per il pulsante di comando.

7

Premere il tasto “F5” per avviare l’applicazione e visualizzare una versione live del modulo. Utilizza i controlli sul modulo per filtrare i dati dall’origine dati o dal database connesso all’applicazione. Fare clic sul pulsante di comando creato nel modulo. VB6 invia i dati dal modulo a un nuovo foglio di calcolo Excel utilizzando il nome del file inserito nel codice.

8

Avvia Microsoft Excel e apri il nuovo foglio di calcolo creato dall’applicazione VB6. I dati visualizzati nel modulo VB6 dovrebbero apparire sotto le intestazioni nel nuovo foglio di calcolo.