Cartella di lavoro Excel e UI form con Visual Studio

Novembre 2016

In questa guida verrà illustrato come creare un Progetto Excel Workbook (cartella di lavoro); come compilare il form utilizzando i controlli interattivi Win- Form Excel; come creare un Ribbon; come decodificare i controlli per interagire con l'oggetto delle celle Excel e in fine, come apprendere come pubblicare il Workbook (cartella di lavoro).

Per questo tutorial verrà utilizzato Microsoft Visual Studio 2013. È possibile scaricare Visual Studio Community 2013 (gratuita per la versione individuale sviluppatori) da questo link. Saranno necessari anche i tools Office di sviluppo. Per poter testare il progetti, in ogni momento, premere F5 dalla tastiera.


Creare il progetto Excel Visual Studio

Aprire Visual Studio e scegliere come programma di lavoro Excel Workbook:



Inserire foglio Excel Colonna A (qualcosa di simile a questo):


Inserire il Win Form e il Ribbon

Per l'inserimento di Win Form e la creazione di controlli ad esso collegati, si rimanda a questa
guida:



Poi scrivere ciò che si desidera visualizzare nella cella Excel per le celle vuote della colonna A e poi aggiungere i valori di tali celle alla Combobox, precedentemente aggiunta al Form. La casella di testo sarà usata per inserire che vada a sostituire il valore della cella selezionata, cliccando sul bottone. Il font della cella sarà sostituibile cliccando sulla finestra di dialogo visualizzata.

Ora procedere aggiungendo il Ribbon. Entrare in nella Solution Explorer, fare clic destro sul progetto e scegliere Aggiungi > Nuovo Oggetto:



Dalla finestra di dialogo scegliere:



Verrà aggiunto un singolo tasto dalla ToolBox al nuovo Ribbon:


Codice del tasto Ribbon

Doppio clic sul tasto aggiunto al Ribbon e procedere aggiungendo il codice sotto riportato. Quest'ultimo visualizzerà il form creato come un finestra di dialogo:


Private Sub Button1_Click(sender As Object, e As RibbonControlEventArgs) Handles Button1.Click
        Dim a As Windows.Forms.Form = New Global.ExcelWorkbook1.Form1
        a.ShowDialog()
    End Sub

Form1 Code

Il codice includerà:

Un inizializzazione del form e l'aggiunta di oggetti alla ComboBox;

Ottenimento della ComboBox per selezionare le celle in accordo ai suoi aggetti selezionati;

Codifica del Change Value Button per cambiale il valore della cella selezionata;

Codifica del font Dialog.

ComboBox

Per poter visualizzare la View Code, dalla Solution Explorer fare clic destro sul Form1.vb o semplicemente selezionarla e premendo F7. In questo modo il il codice seguente creerà una Private Sub e in qualunque modo sarà noiminato, restarà pur sempre chiaro che si tratti di una ComboBox costituita dai suoi stessi oggetti:


Private Sub combo()
        ComboBox1.Items.Clear()
        Dim i As Integer = 1, ws As Excel.Worksheet
        ws = Globals.ThisWorkbook.Sheets("sheet1")
        Dim j = ws.Cells(ws.Rows.Count, 1).End(Excel.XlDirection.xlUp).Row
        Do Until i = j + 1
            If ws.Cells(i, 1).value <> Nothing Then
                ComboBox1.Items.Add(ws.Cells(i, 1).value.ToString)
            End If
            i = i + 1
        Loop
        ComboBox1.SelectedItem = ComboBox1.Items.Item(0)
    End Sub


Ora si tratterà il Form 1:



Rinominare il Combo Sub:

Private Sub Form1_Shown(sender As Object, e As EventArgs) Handles Me.Shown
        combo()
End Sub


Ora premendo F5 dovrebbe essere visualizzata la Workbook (cartella di lavoro) Excel, andare su Aggiungi-in-tab, premere il tasto e Form1 sarà visualizzato con gli oggetti della ComboBox:



Il codice per selezionare le celle da ComboBox:


  Private Sub ComboBox1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ComboBox1.SelectedIndexChanged
        Dim i As Integer = 1, ws As Excel.Worksheet
        ws = Globals.ThisWorkbook.Sheets("sheet1")
        Dim j = ws.Cells(ws.Rows.Count, 1).End(Excel.XlDirection.xlUp).Row
        Do Until i = j + 1
            If ws.Cells(i, 1).value = ComboBox1.SelectedItem.ToString Then
                ws.Cells(i, 1).select()
                Exit Do
            End If
            i = i + 1
        Loop
End Sub

Impostazione del tasto Value Code

Nella Solution Explorer Double Click in Form1, fare doppio clic sul tasto per entrare nell'area codice e scrivere questo codice:


Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Dim m As Excel.Range = Globals.Sheet1.Cells(1, 1)
        Dim i As Integer = 1, ws As Excel.Worksheet
        ws = Globals.ThisWorkbook.Sheets("sheet1")
        Dim j = ws.Cells(ws.Rows.Count, 1).End(Excel.XlDirection.xlUp).Row
        Do Until i = j + 1
            If ws.Cells(i, 1).value = ComboBox1.SelectedItem.ToString Then
                If Not TextBox1.Text = "" Then
                    ws.Cells(i, 1).value = TextBox1.Text
                    combo()
                Else
                    MessageBox.Show("Please Enter a non-blank Value")
                End If
                Exit Do
            End If
            i = i + 1
        Loop
 End Sub

Codice di Font dialog

Fare doppio clic sul tasto Font per entrare nell'area codice:


Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
        Dim f As New FontDialog, ws As Excel.Worksheet
        ws = Globals.ThisWorkbook.Sheets("sheet1")
        Dim Cell As Excel.Range = ws.Application.ActiveCell
        f.ShowColor = True
        If f.ShowDialog() <> Windows.Forms.DialogResult.Cancel Then
            With Cell
                .Font.Name = f.Font.Name
                .Font.Size = f.Font.Size
                .Font.Color = f.Color
                .Font.Italic = f.Font.Italic
                .Font.Bold = f.Font.Bold
                .Font.Underline = f.Font.Underline
                .Font.Strikethrough = f.Font.Strikeout
            End With
        End If
    End Sub

Pubblicazione del Progetto

Per la pubblicazione del progetto, si rimanda ulteriormente alla precedente ad essa inerente.

Potrebbe anche interessarti :
Il documento intitolato « Cartella di lavoro Excel e UI form con Visual Studio » da CCM (it.ccm.net) è reso disponibile sotto i termini della licenza Creative Commons. È possibile copiare, modificare delle copie di questa pagina, nelle condizioni previste dalla licenza, finché questa nota appaia chiaramente.