Selasa, 28 Juli 2015

Belajar Membuat Program Dengan Excel VBA- Pelajaran 4 : Membuat Program Userform

Bab ini mengajarkan Anda bagaimana untuk membuat Excel VBA UserForm. UserForm akan dibuat terlihat sebagai berikut:


Add the Controls


Untuk menambahkan kontrol ke UserForm, jalankan langkah-langkah berikut.

1. Buka Visual Basic Editor. Jika Project Explorer tidak terlihat, klik View, Project Explorer.

2. Klik Insert, UserForm. Jika Toolbox tidak muncul secara otomatis, klik View, Toolbox. Layar Anda harus terlihat sebagai berikut.


3. Tambahkan kontrol yang tercantum dalam tabel di bawah ini. Setelah ini telah selesai, hasilnya harus konsisten dengan gambar UserForm ditampilkan sebelumnya. Misalnya, membuat teks kotak kontrol dengan mengklik TextBox dari Toolbox. Berikutnya, Anda dapat drag teks box pada UserForm. Ketika Anda tiba di Car frame, ingatlah untuk menggambar frame ini terlebih dahulu sebelum Anda menempatkan dua option buttons di dalamnya.

4. Ubah names dan captions dari controls sesuai dengan tabel di bawah. Nama yang digunakan dalam kode VBA Excel. Captions yaitu yang muncul di layar Anda. Ini adalah praktik yang baik untuk mengubah nama kontrol. Ini akan membuat kode Anda lebih mudah dibaca. Untuk mengubah name dan captions dari kontrol, klik View, Properties Window dan klik pada setiap kontrol.

ControlNameCaption
UserformDinnerPlannerUserFormDinner Planner
Text BoxNameTextBox
Text BoxPhoneTextBox
List BoxCityListBox
Combo BoxDinnerComboBox
Check BoxDateCheckBox1June 13th
Check BoxDateCheckBox2June 20th
Check BoxDateCheckBox3June 27th
FrameCarFrameCar
Option ButtonCarOptionButton1Yes
Option ButtonCarOptionButton2No
Text BoxMoneyTextBox
Spin ButtonMoneySpinButton
Command ButtonOKButtonOK
Command ButtonClearButtonClear
Command ButtonCancelButtonCancel
7 LabelsNo need to changeName:, Phone Number:, etc.

Catatan: combo box adalah daftar drop-down di mana pengguna dapat memilih item atau mengisi / pilihannya sendiri. Hanya salah satu option buttons dapat dipilih.


Show the Userform


Untuk menampilkan UserForm, menempatkan tombol perintah pada lembar kerja Anda dan tambahkan baris kode berikut:

Private Sub CommandButton1_Click()

DinnerPlannerUserForm.Show

End Sub

Kita sekarang akan membuat Sub UserForm_Initialize. Bila Anda menggunakan Show metode untuk UserForm, sub ini secara otomatis akan dieksekusi.

1. Buka Visual Basic Editor.

2. Dalam Project Explorer, klik kanan pada DinnerPlannerUserForm dan kemudian klik View Code.

3. Pilih UserForm dari list drop-down kiri. Pilih Inisialisasi dari daftar drop-down yang tepat.

4. Tambahkan baris kode berikut:


Private Sub UserForm_Initialize()

'Empty NameTextBox
NameTextBox.Value = ""

'Empty PhoneTextBox
PhoneTextBox.Value = ""

'Empty CityListBox
CityListBox.Clear

'Fill CityListBox
With CityListBox
    .AddItem "San Francisco"
    .AddItem "Oakland"
    .AddItem "Richmond"
End With

'Empty DinnerComboBox
DinnerComboBox.Clear

'Fill DinnerComboBox
With DinnerComboBox
    .AddItem "Italian"
    .AddItem "Chinese"
    .AddItem "Frites and Meat"
End With

'Uncheck DataCheckBoxes
DateCheckBox1.Value = False
DateCheckBox2.Value = False
DateCheckBox3.Value = False

'Set no car as default
CarOptionButton2.Value = True

'Empty MoneyTextBox
MoneyTextBox.Value = ""

'Set Focus on NameTextBox
NameTextBox.SetFocus

End Sub

Penjelasan: text boxes dikosongkan, list boxes dan combo boxes diisi, check boxes yang dicentang, dll

Assign the Macros


Kami sekarang telah menciptakan bagian pertama dari UserForm. Meskipun terlihat sudah rapi, namun ketika kita klik tombol perintah pada UserForm, program belum bisa jalan.

1. Buka Visual Basic Editor.

2. Dalam Project Explorer, double klik kali pada DinnerPlannerUserForm.

3. Double klik pada tombol Money spin.

4. Tambahkan baris kode berikut:

Private Sub MoneySpinButton_Change()

MoneyTextBox.Text = MoneySpinButton.Value

End Sub

Penjelasan: baris kode ini update  text box saat Anda menggunakan tombol spin.


5. Double klik pada tombol OK.

6. Tambahkan baris kode berikut:

Private Sub OKButton_Click()

Dim emptyRow As Long

'Make Sheet1 active
Sheet1.Activate

'Determine emptyRow
emptyRow = WorksheetFunction.CountA(Range("A:A")) + 1

'Transfer information
Cells(emptyRow, 1).Value = NameTextBox.Value
Cells(emptyRow, 2).Value = PhoneTextBox.Value
Cells(emptyRow, 3).Value = CityListBox.Value
Cells(emptyRow, 4).Value = DinnerComboBox.Value

If DateCheckBox1.Value = True Then Cells(emptyRow, 5).Value = DateCheckBox1.Caption

If DateCheckBox2.Value = True Then Cells(emptyRow, 5).Value = Cells(emptyRow, 5).Value & " " & DateCheckBox2.Caption

If DateCheckBox3.Value = True Then Cells(emptyRow, 5).Value = Cells(emptyRow, 5).Value & " " & DateCheckBox3.Caption

If CarOptionButton1.Value = True Then
    Cells(emptyRow, 6).Value = "Yes"
Else
    Cells(emptyRow, 6).Value = "No"
End If

Cells(emptyRow, 7).Value = MoneyTextBox.Value

End Sub


Penjelasan: pertama, kita mengaktifkan Sheet1. Berikutnya, kita menentukan emptyRow. Variabel emptyRow adalah baris pertama yang kosong dan menambahkan setiap kali sebuah record ditambahkan. Akhirnya, kita mentransfer informasi dari UserForm ke kolom tertentu dari emptyRow.

7. Double klik pada tombol Clear.

8. Tambahkan baris kode berikut:Penjelasan: baris kode ini menut


Private Sub ClearButton_Click()

Call UserForm_Initialize

End Sub

Penjelasan: baris kode ini memanggil Sub UserForm_Initialize ketika Anda klik pada tombol Clear.

9. Klik dua kali pada Batal Button.

10. Tambahkan baris kode berikut:

Private Sub CancelButton_Click()

Unload Me

End Sub

UserForm keluar ketika Anda klik pada tombol Cancel.


Test the Userform


Keluar dari Visual Basic Editor, masukkan label yang ditunjukkan di bawah ke baris 1 dan menguji UserForm.

hasil:




Sumber: excel-easy.com

0 komentar:

Posting Komentar