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.
Aprire Visual Studio e scegliere come programma di lavoro Excel Workbook:
Inserire foglio Excel Colonna A (qualcosa di simile a questo):
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:
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
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.
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
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
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
Per la pubblicazione del progetto, si rimanda ulteriormente alla guida precedente ad essa inerente.
Foto: © Visual Studio.