Dasar dasar hukum syiah UserForm
Artikel ini menjelaskan cara mengubah UserForms pemrograman di Microsoft Excel.
Disertakan contoh-contoh dan Microsoft Visual Basic for Applications (VBA) makro yang
menunjukkan kepada Anda bagaimana untuk mengambil keuntungan dari kemampuan
UserForms dan bagaimana menggunakan kendali ActiveX ™ yang tersedia untuk
UserForms.
Pengenalan prinsip-prinsip dasar UserForms menjelaskan bagaimana menampilkan
UserForms, bagaimana untuk menyembunyikan sementara UserForms, dan bagaimana
untuk mengabaikan UserForms. Anda juga ditunjukkan bagaimana menggunakan peristiwaperistiwa yang paling umum yang terkait dengan UserForms — Menginisialisasi acara, Klik
acara, dan Mengakhiri acara. Satu atau beberapa contoh berikut menunjukkan cara
menggunakan masing-masing kendali ActiveX ™ berikut di UserForm:
Label kontrol
TextBox kontrol
CommandButton kontrol
ListBox kontrol
ComboBox kontrol
Bingkai kontrol
OptionButton kontrol
kotak centang kontrol
ToggleButton kontrol
TabStrip kontrol
MultiPage kontrol
ScrollBar kontrol
SpinButton kontrol
RefEdit kontrol
Gambar kontrol
Kembali ke atas | Berikan Masukan
PENGENALAN
Artikel ini menjelaskan cara menggunakan VBA untuk membuat perubahan dalam
UserForms dalam Excel.
Kembali ke atas | Berikan Masukan
Informasi lebih lanjut
Microsoft menyediakan pemrogaman hanya untuk ilustrasi, tanpa garansi baik tersurat
maupun tersirat. Ini mencakup, namun tidak terbatas pada, jaminan tersirat dapat
diperjualbelikan atau kesesuaian untuk tujuan tertentu. Artikel ini mengasumsikan bahwa
Anda sudah terbiasa dengan bahasa pemrogaman yang ditunjukkan dan dengan alat yang
digunakan untuk membuat dan memperbaiki prosedur. Teknisi Microsoft dapat membantu
menjelaskan fungsionalitas prosedur tertentu, tetapi mereka tidak akan mengubah contoh
tersebut untuk menyediakan fungsionalitas tambahan atau menyusun prosedur untuk
memenuhi persyaratan khusus.
Dasar-dasar UserForm
Cara menampilkan UserForm
Sintaks yang digunakan untuk menampilkan UserForm pemrograman berikut:
UserFormName.Tampilkan
Untuk menampilkan UserForm yang bernama UserForm1, menggunakan berikut kode:
UserForm1.Show
Anda dapat memuat UserForm ke kehabisan memori tanpa benar-benar menampilkan itu.
Mungkin diperlukan UserForm kompleks beberapa detik untuk muncul. Karena Anda dapat
preload UserForm ke kehabisan memori, Anda dapat memutuskan kapan harus dikenakan
overhead ini. Untuk memuat UserForm1 ke dalam kehabisan memori tanpa menampilkan itu,
gunakan kode berikut:
Load UserForm1
Untuk menampilkan UserForm, Anda harus menggunakan metode Tampilkan yang
sebelumnya ditunjukkan.
Cara Sembunyikan untuk sementara UserForm
Jika Anda ingin menyembunyikan sementara UserForm, gunakan metode yang
menyembunyikan . Anda mungkin ingin menyembunyikan UserForm jika aplikasi Anda
melibatkan bergerak antara UserForms. Untuk menyembunyikan UserForm, gunakan kode
berikut:
UserForm1.Hide
Untuk informasi tambahan, klik nomor artikel berikut ini untuk melihat artikel di Microsoft
Knowledge Base:
213747
(http://support.microsoft.com/kb/213747/ )
XL2000: Bagaimana untuk beralih antara kustom UserForms dengan tombol tekan perintah
Bagaimana menghapus UserForm dari kehabisan memori
Untuk menghapus UserForm dari kehabisan memori, menggunakan pernyataan
membongkar . Untuk membongkar UserForm yang bernama UserForm1, gunakan kode
berikut:
Unload UserForm1
Jika Anda membongkar UserForm di prosedur kejadian yang dikaitkan dengan UserForm
atau itulah dikaitkan dengan kontrol pada UserForm (misalnya, mengklik control
CommandButton ke atas ), Anda dapat menggunakan kata bukti kunci "Me" bukan nama
UserForm. Untuk menggunakan "Me" kata bukti kunci untuk membongkar UserForm,
gunakan kode berikut:
Unload Me
Bagaimana menggunakan peristiwa-peristiwa UserForm
UserForms mendukung banyak peristiwa standar yang Anda dapat melampirkan VBA
prosedur untuk. Ketika acara terjadi, prosedur yang Anda melekat acara berjalan. Tindakan
yang dilakukan oleh pengguna dapat memulai beberapa peristiwa. Di antara yang paling
sering digunakan peristiwa untuk UserForm adalah acara menginisialisasi , acara Klik dan
Hentikan acara.
Catatan Modul Visual Basic yang berisi prosedur kejadian mungkin disebut sebagai modul
"di belakang" UserForm. Modul yang berisi acara prosedur ini tidak terlihat dalam koleksi
modul jendela Explorer proyek Microsoft Visual Dasar Editor. Anda harus mengklik dua kali
tubuh UserForm untuk melihat UserForm Kode modul.
Bagaimana untuk menjebak UserForm peristiwa
Untuk menjebak UserForm peristiwa, ikuti langkah berikut:
1. Buat buku kerja baru di Excel.
2. Pada Alat Menu, titik untukMakro, lalu klik Visual Basic Editor.
3. Pada Masukkan Menu, klikUserForm untuk memasukkan UserForm di buku
kerja Anda.
4. klik ganda UserForm untuk menampilkan Jendela kode untuk UserForm.
5. Dalam modul, ketik kode berikut:
6. Private Sub UserForm_Click()
7.
8.
Me.Height = Int(Rnd * 500)
9.
Me.Width = Int(Rnd * 750)
10.
11.
End Sub
12.
13.
Private Sub UserForm_Initialize()
14.
15.
Me.Caption = "Events Events Events!"
16.
Me.BackColor = RGB(10, 25, 100)
17.
18.
End Sub
19.
20.
Private Sub UserForm_Resize()
21.
22.
msg = "Width: " & Me.Width & Chr(10) & "Height: " &
Me.Height
23.
MsgBox prompt:=msg, Title:="Resize Event"
24.
25.
End Sub
26.
27.
28.
Private Sub UserForm_QueryClose(Cancel As Integer,
CloseMode As Integer)
29.
30.
msg = "Now Unloading " & Me.Caption
31.
MsgBox prompt:=msg, Title:="QueryClose Event"
32.
33.
End Sub
34.
35.
Private Sub UserForm_Terminate()
36.
37.
msg = "Now Unloading " & Me.Caption
38.
MsgBox prompt:=msg, Title:="Terminate Event"
39.
End Sub
40. Pada Menjalankan Menu, klik Menjalankan Sub UserForm.
Ketika UserForm pertama yang dimuat, makro menggunakan menginisialisasi acara untuk
mengubah properti Caption UserForm untuk "Peristiwa Events Events!" dan properti
BackColor untuk biru gelap.
Ketika Anda klik UserForm, Anda memulai acara Klik . Acara Klik mengubah ukuran
UserForm. Karena Anda menciptakan sebuah prosedur untuk mengubah ukuran acara, Anda
menerima dua kotak pesan setelah Anda mengklik UserForm. Mengubah ukuran acara
terjadi dua kali karena kode di belakang acara Klik perubahan properti lebar dan tinggi milik
UserForm.
Menutup UserForm memulai acara QueryClose . Acara QueryClose menampilkan kotak
pesan yang berisi keterangan bahwa Anda memberikan UserForm dalam kode untuk
menginisialisasi acara. Anda dapat menggunakan acara QueryClose bila Anda ingin
melakukan serangkaian tindakan tertentu jika pengguna menutup UserForm.
Hentikan acara kemudian menghasilkan sebuah kotak pesan yang menyatakan bahwa
keterangan UserForm adalah UserForm1. Hentikan peristiwa terjadi setelah UserForm akan
dihapus dari kehabisan memori dan Caption UserForm kembali ke keadaan semula.
Bagaimana mencegah UserForm ditutup dengan menggunakan tombol tekan Tutup
Ketika Anda menjalankan UserForm, Tutup tombol tekan ditambahkan sudut kanan-atas atas
jendela UserForm. Jika Anda ingin mencegah UserForm dari ditutup dengan menggunakan
Tutup tombol tekan, Anda harus perangkap QueryClose acara.
QueryClose peristiwa terjadi tepat sebelum UserForm diturunkan dari kehabisan memori.
Menggunakan argumen CloseModeQueryClose acara untuk menentukan bagaimana
UserForm ditutup. Nilai vbFormControlMenu untuk argumen CloseMode menunjukkan
bahwa Tutuptombol tekan diklik. Untuk menjaga UserForm aktif, set argumen membatalkan
acara QueryClose untuk benar. Menggunakan acara QueryClose untuk mencegah
UserForm ditutup dengan menggunakan Tutup tombol tekan, ikuti langkah berikut:
1. Buat buku kerja baru di Excel.
2. Pada Alat Menu, titik untukMakro, lalu klik Visual Basic Editor.
3. Pada Masukkan Menu, klikUserForm untuk memasukkan UserForm di buku
kerja Anda.
4. Tambahkan kontrol CommandButton untuk UserForm.
5. klik ganda UserForm untuk menampilkan Jendela kode untuk UserForm.
6. Dalam jendela kode, ketik kode berikut:
7. Private Sub CommandButton1_Click()
8.
9.
Unload Me
10.
11.
End Sub
12.
13.
Private Sub UserForm_QueryClose(Cancel As Integer,
CloseMode As Integer)
14.
15.
IF CloseMode = vbFormControlMenu Then
16.
Cancel = True
17.
Me.Caption = "Click the CommandButton to close Me!"
18.
End If
19.
End Sub
20. Pada Menjalankan Menu, klik Menjalankan Sub UserForm.
UserForm tidak tertutup ketika Anda mengklik Tutup tombol tekan. Anda harus meng-klik
CommandButton kontrol untuk menutup UserForm.
Untuk informasi tambahan, klik nomor artikel berikut untuk melihat artikel di dalam
Pangkalan Pengetahuan Microsoft:
207714
(http://support.microsoft.com/kb/207714/ )
XL2000: Galat run-time menggunakan UserForms koleksi
211527
(http://support.microsoft.com/kb/211527/ )
XL2000: Tidak dapat menyeret UserForm kontrol ke lembar kerja
211868
(http://support.microsoft.com/kb/211868/ )
XL2000: Kesalahan menjalankan makro yang menyisipkan kontrol ke UserForm
213582
(http://support.microsoft.com/kb/213582/ )
XL2000: Masalah ketika Anda menggunakan makro untuk menambahkan kontrol UserForm
213583
(http://support.microsoft.com/kb/213583/ )
XL2000: Tidak dapat menunjukkan UserForms dalam proyek-proyek lain
213736
(http://support.microsoft.com/kb/213736/ )
XL2000: Cara menentukan tombol tekan ditekan bersama dengan tombol tekan gulir dengan
mouse
213744
(http://support.microsoft.com/kb/213744/ )
XL2000: Bagaimana untuk menyembunyikan sementara UserForm
213747
(http://support.microsoft.com/kb/213747/ )
XL2000: Bagaimana untuk beralih antara kustom UserForms dengan tombol tekan perintah
213749
(http://support.microsoft.com/kb/213749/ )
XL2000: bagaimana untuk menggunakan UserForm untuk memasukkan data
213768
(http://support.microsoft.com/kb/213768/ )
XL2000: Bagaimana untuk secara dinamis mengubah ukuran bentuk pengguna
213774
(http://support.microsoft.com/kb/213774/ )
XL2000: Cara membuat layar Startup dengan UserForm
VBA kode
Excel termasuk lima belas kontrol yang berbeda yang dapat Anda gunakan pada UserForms.
Bagian ini berisi berbagai contoh yang menggunakan kontrol ini pemrograman.
Catatan VBA kode yang disertakan dalam artikel ini tidak berisi contoh yang mempengaruhi
semua properti dan Event untuk kontrol. Jika Anda harus, Anda dapat menggunakan jendela
Properties untuk melihat daftar properti yang tersedia untuk kontrol. Untuk melihat daftar
properti, pada Lihat Menu, klik Jendela properti.
Cara menggunakan mode desain untuk mengedit kontrol
Bila Anda menggunakan Editor Visual Basic untuk merancang kotak dialog, Anda
menggunakan modus desain. Dalam mode Desain, Anda dapat mengedit kontrol dan Anda
dapat mengubah properti kontrol pada UserForm dalam jendela properti. Untuk menampilkan
jendela Properties, padaLihat Menu, klik Jendela properti.
Catatan Kontrol tidak menanggapi peristiwa saat Anda berada dalam mode desain. Ketika
Anda menjalankan kotak dialog untuk menampilkan cara bahwa pengguna melihat itu,
program adalah dalam menjalankan mode. Perubahan yang Anda buat pada properti kontrol
dalam jangka mode tidak dipertahankan ketika UserForm diturunkan dari kehabisan memori.
Catatan Kontrol menanggapi peristiwa dalam menjalankan mode.
Bagaimana mengacu kepada kontrol pada UserForm
Bagaimana Anda merujuk ke kontrol secara pemrograman tergantung pada jenis lembar
modul Visual Basic yang mana Anda menjalankan kode. Jika kode berjalan dari modul
umum, sintaks adalah sebagai berikut:
UserFormName.Controlname.Property = Nilai
Misalnya, jika Anda ingin mengatur properti teks kontrol TextBox yang bernama TextBox1
di UserForm yang bernama UserForm1 untuk nilai Bob, gunakan kode berikut:
UserForm1.TextBox1.Text = "Bob"
Jika kode dalam prosedur yang dimulai oleh sebuah peristiwa kontrol atau oleh UserForm,
Anda tidak harus merujuk pada nama UserForm. Sebaliknya, gunakan kode berikut:
TextBox1.Text = "Bob"
Bila Anda memasang kode obyek, kode melekat ke salah satu peristiwa yang objek. Dalam
banyak contoh dalam artikel ini, Anda melampirkan kode pada acara Klik objek
CommandButton .
Kontrol label
Kontrol label terutama digunakan untuk menggambarkan kontrol lain pada UserForm.
Sebuah kontrol Label tak bisa diedit oleh pengguna sementara UserForm menjalankan.
Menggunakan properti Caption untuk mengatur atau kembali teks di sebuah kontrol Label .
Properti lainnya sering digunakan untuk memformat sebuah kontrol Label termasuk properti
Font dan ForeColor properti.
Bagaimana menggunakan sebuah pernyataan dengan memformat sebuah kontrol Label
Untuk menggunakan dengan pernyataan untuk mengubah properti kontrol Label , ikuti
langkah berikut:
1. Memulai Excel, dan kemudian buka buku kerja baru kosong.
2. Pada Alat Menu, titik untukMakro, lalu klik Visual Basic Editor.
3. Pada Masukkan Menu, klikUserForm untuk memasukkan UserForm di buku
kerja Anda.
4. Tambahkan kontrol Label untuk UserForm.
5. Tambahkan kontrol CommandButton untuk UserForm.
6. klik ganda CommandButton kontrol untuk Buka jendela kode untuk
UserForm.
7. Dalam jendela kode, ketik kode berikut untuk Klik CommandButton1 acara:
8. Private Sub CommandButton1_Click()
9.
10.
With Label1
11.
' Set the text of the label.
12.
.Caption = "This is Label Example 1"
13.
' Automatically size the label control.
14.
.AutoSize = True
15.
.WordWrap = False
16.
' Set the font used by the Label control.
17.
.Font.Name = "Times New Roman"
18.
.Font.Size = 14
19.
.Font.Bold = True
20.
21.
22.
23.
' Set the font color to blue.
.ForeColor = RGB(0, 0, 255)
End With
End Sub
24. Pada Menjalankan Menu, klik Menjalankan Sub UserForm.
25. Klik CommandButton.
Teks "Ini adalah Label contoh 1" muncul pada Label control di bold Times New Roman
dengan ukuran fon 14.
Kontrol TextBox
Kontrol TextBox sering digunakan untuk mengumpulkan masukan dari pengguna. Properti
teks berisi entri yang dibuat di kontrol TextBox .
Cara menggunakan kontrol TextBox untuk memvalidasi password
Jika Anda mengatur properti PasswordChar dari kontrol TextBox , menjadi kontrol
"bertopeng-edit". Setiap karakter yang diketik dalam TextBox kontrol digantikan secara
visual dengan karakter yang Anda tentukan. Untuk menggunakan kontrol TextBox untuk
memvalidasi sandi, ikuti langkah berikut:
1. Memulai Excel, dan kemudian buka buku kerja baru kosong.
2. Pada Alat Menu, titik untukMakro, lalu klik Visual Basic Editor.
3. Pada Masukkan Menu, klikUserForm untuk memasukkan UserForm di buku
kerja Anda.
4. Tambahkan kontrol TextBox untuk UserForm.
5. Pada Lihat Menu, klikProperti untuk membuat jendela properti terlihat.
6. Dalam properti PasswordChar dari kontrol TextBox , ketik *.
Catatan Anda mengubah nilai ke asterisk.
7. Tambahkan kontrol CommandButton untuk UserForm.
8. Klik dua kali CommandButton kontrol untuk Buka jendela kode untuk
UserForm.
9. Dalam jendela kode, ketik kode berikut untuk Klik CommandButton1 acara:
10.
11.
12.
13.
Private Sub CommandButton1_Click()
If TextBox1.Text "userform" Then
MsgBox "Password is Incorrect. Please reenter."
14.
15.
16.
17.
18.
19.
20.
21.
22.
TextBox1.Text = ""
TextBox1.SetFocus
Else
MsgBox "Welcome!"
Unload Me
End If
End Sub
23. Pada Menjalankan Menu, klik Menjalankan Sub UserForm.
24. Ketik sandi UserForm di kontrol TextBox .
25. Klik CommandButtonkontrol.
Untuk contoh ini, sandi adalah "userform". Jika Anda mengetik password salah, Anda
menerima sebuah kotak pesan yang menyatakan bahwa sandi betul, kontrol TextBox adalah
dibersihkan, dan kemudian Anda dapat ketik-ulang sandi. Kapan Anda mengetik sandi yang
benar, Anda menerima pesan pembuka dan UserForm adalah ditutup.
Untuk informasi tambahan, klik nomor artikel berikut ini untuk melihat artikel di Microsoft
Knowledge Base:
213555
(http://support.microsoft.com/kb/213555/ )
XL2000: Tidak ada Data validasi properti untuk UserForm textbox
Kontrol CommandButton
Anda dapat menggunakan control CommandButton ke atas untuk memulai prosedur VBA.
Prosedur VBA ini biasanya melekat pada acara Klik Control CommandButton . Untuk
menggunakan kontrol CommandButton yang menjalankan prosedur ketika acara Klik
terjadi, ikuti langkah berikut:
1. Memulai Excel, dan kemudian buka buku kerja baru kosong.
2. Pada Alat Menu, titik untukMakro, lalu klik Visual Basic Editor.
3. Pada Masukkan Menu, klikUserForm untuk memasukkan UserForm di buku
kerja Anda.
4. Tambahkan kontrol CommandButton untuk UserForm.
5. Klik dua kali CommandButton kontrol untuk Menampilkan jendela kode
untuk UserForm.
6. Dalam jendela kode, ketik kode berikut:
7. Private Sub CommandButton1_Click()
8.
9.
red = Int(Rnd * 255)
10.
green = Int(Rnd * 255)
11.
12.
13.
blue = Int(Rnd * 255)
CommandButton1.BackColor = RGB(red, green, blue)
End Sub
14. Pada Menjalankan Menu, klik Menjalankan Sub UserForm.
Warna latar belakang CommandButton1kontrol perubahan setiap waktu yang Anda klik.
Untuk informasi tambahan tentang CommandButton kontrol, klik nomor artikel berikut ini
untuk melihat artikel pada Basis Pengetahuan Microsoft:
213572
(http://support.microsoft.com/kb/213572/ )
XL2000: Mengklik tombol Batal tidak dapat mengabaikan UserForm
213743
(http://support.microsoft.com/kb/213743/ )
XL2000: Cara menetapkan tombol perintah default di UserForm
ListBox kontrol
Tujuan dari ListBox DNS adalah untuk menyajikan pengguna dengan daftar item untuk
memilih dari. Anda dapat menyimpan daftar item untuk sebuah ListBox DNS pada lembar
kerja Excel. Untuk mengisi sebuah ListBox DNS dengan kisaran sel pada lembar kerja,
menggunakan properti RowSource . Ketika Anda menggunakan properti MultiSelect , Anda
dapat mengatur sebuah ListBox DNS untuk menerima beberapa pilihan.
Cara mendapatkan item yang saat ini dipilih dari ListBox DNS
Menggunakan properti nilai dari sebuah ListBox DNS untuk mengembalikan item yang saat
ini dipilih. Untuk kembali item yang dipilih saat ini dalam satu pilih ListBox DNS, ikuti
langkah berikut:
1. Memulai Excel, dan kemudian buka buku kerja baru kosong.
2. Dalam sel A1:A5 pada Sheet1, ketik nilai-nilai yang ingin Anda Gunakan untuk
mengisi ListBox DNS.
3. Pada Alat Menu, titik untukMakro, lalu klik Visual Basic Editor.
4. Pada Masukkan Menu, klikUserForm untuk memasukkan UserForm di buku
kerja Anda.
5. Menambahkan sebuah ListBox DNS untuk UserForm.
6. Klik dua kali ListBox kontrol untuk Menampilkan jendela kode untuk ListBox
DNS.
7. Dalam jendela kode, ketik kode berikut untuk Klik ListBox1 acara:
8. Private Sub ListBox1_Click()
9.
10.
11.
MsgBox ListBox1.Value
End Sub
12. Pada Menjalankan Menu, klik Menjalankan Sub UserForm.
Ketika Anda mengklik item dalam daftar, kotak pesan muncul dengan item yang saat ini
dipilih.
Cara mendapatkan item yang dipilih dalam beberapa pilih ListBox DNS
Untuk menentukan item yang dipilih dalam beberapa pilih ListBox DNS, Anda harus loop
melalui semua item dalam daftar, dan kemudian permintaan properti dipilih . Kembali unsur
terpilih saat ini di beberapa Pilih ListBox DNS, ikuti langkah berikut:
1. Memulai Excel, dan kemudian buka buku kerja baru kosong.
2. Dalam sel A1:A5 pada Sheet1, ketik nilai-nilai yang ingin Anda Gunakan untuk
mengisi ListBox DNS.
3. Pada Alat Menu, titik untukMakro, lalu klik Visual Basic Editor.
4. Pada Masukkan Menu, klikUserForm untuk memasukkan UserForm di buku
kerja Anda.
5. Menambahkan sebuah ListBox DNS untuk UserForm.
6. Pada Lihat Menu, klikProperti untuk melihat jendela properti.
7. Ketik nilai-nilai yang ditunjukkan untuk properti kontrol ListBox berikut:
8.
9.
10.
Property
Value
--------------------------------MultiSelect
1 - frmMultiSelectMulti
RowSource
Sheet1!A1:A8
11. Tambahkan kontrol CommandButton untuk UserForm.
12. Klik dua kali CommandButton kontrol untuk Menampilkan jendela kode
untuk UserForm.
13. Dalam jendela kode, ketik kode berikut untuk Klik CommandButton1 acara:
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
Sub CommandButton1_Click ()
' Loop through the items in the ListBox.
For x = 0 to ListBox1.ListCount - 1
' If the item is selected...
If ListBox1.Selected(x) = True Then
' display the Selected item.
MsgBox ListBox1.List(x)
24.
25.
26.
End If
Next x
End Sub
27. Pada Menjalankan Menu, klik Menjalankan Sub UserForm.
28. Pilih satu atau beberapa item dalam daftar.
29. Klik CommandButton1.
Setelah Anda mengklik CommandButton1, setiap item yang Anda memilih dalam ListBox
kontrol muncul pada kotak pesan terpisah. Setelah semua yang dipilih item yang muncul di
kotak pesan, UserForm otomatis ditutup.
Cara menggunakan properti RowSource untuk mengisi sebuah ListBox DNS dengan sel
pada lembar kerja
Untuk menggunakan properti RowSource untuk mengisi sebuah ListBox DNS dari kisaran
sel pada lembar kerja, ikuti langkah berikut:
1. Memulai Excel, dan kemudian buka buku kerja baru kosong.
2. Dalam sel A1:A5 pada Sheet1, ketik nilai-nilai yang ingin Anda Gunakan untuk
mengisi ListBox DNS.
3. Pada Alat Menu, titik untukMakro, lalu klik Visual Basic Editor.
4. Pada Masukkan Menu, klikUserForm untuk memasukkan UserForm di buku
kerja Anda.
5. Menambahkan sebuah ListBox DNS untuk UserForm.
6. Tambahkan kontrol CommandButton untuk UserForm.
7. Klik dua kali CommandButton kontrol untuk Menampilkan jendela kode
untuk UserForm.
8. Dalam jendela kode, ketik kode berikut untuk Klik CommandButton1 acara:
9. Private Sub CommandButton1_Click()
10.
ListBox1.RowSource = "=Sheet1!A1:A5"
End Sub
11. Pada Menjalankan Menu, klik Menjalankan Sub UserForm.
CatatanListBox1 tidak berisi nilai-nilai apapun.
12. Klik CommandButton1.
ListBox1 diisi dengan nilai-nilai dalam sel A1:A5 pada Sheet1.
Cara mengisi sebuah ListBox DNS dengan nilai-nilai dalam array
Contoh ini menunjukkan Anda bagaimana untuk mengisi sebuah ListBox DNS dengan
variabel array. Anda harus menetapkan nilai-nilai dari array ke ListBox kontrol satu item
pada suatu waktu. Biasanya, proses ini memerlukan bahwa Anda menggunakan struktur
perulangan, seperti untuk...Berikutnya loop. Untuk mengisi sebuah ListBox DNS dengan
variabel array, ikuti langkah berikut:
1. Memulai Excel, dan kemudian buka buku kerja baru kosong.
2. Pada Alat Menu, titik untukMakro, lalu klik Visual Basic Editor.
3. Pada Masukkan Menu, klikUserForm untuk memasukkan UserForm di buku
kerja Anda.
4. Menambahkan sebuah ListBox DNS untuk UserForm.
5. Pada Masukkan Menu, klikModul untuk menyisipkan lembar modul.
6. Dalam jendela kode, ketik kode berikut:
7. Sub PopulateListBox()
8.
9.
Dim MyArray As Variant
10.
Dim Ctr As Integer
11.
MyArray = Array("Apples", "Oranges", "Peaches",
"Bananas", "Pineapples")
12.
13.
For Ctr = LBound(MyArray) To UBound(MyArray)
14.
UserForm1.ListBox1.AddItem MyArray(Ctr)
15.
Next
16.
17.
UserForm1.Show
18.
End Sub
19. Pada Alat Menu, klikMacro, klik PopulateListBox, lalu klikMenjalankan.
Prosedur PopulateListBox membangun sebuah array yang sederhana, dan kemudian
menambahkan item dalam array ke kontrol ListBox dengan menggunakan metode AddItem .
Kemudian, UserForm muncul.
Cara menggunakan horizontal kisaran sel pada lembar kerja untuk mengisi sebuah
ListBox DNS
Jika Anda mengatur properti RowSource dari sebuah ListBox DNS ke horisontal kisaran sel,
hanya nilai pertama muncul dalam ListBox DNS.
Untuk mengisi sebuah ListBox DNS dari kisaran horisontal sel dengan menggunakan metode
AddItem , ikuti langkah berikut:
1. Memulai Excel, dan kemudian buka buku kerja baru kosong.
2. Dalam sel A1:E1 pada Sheet1, ketik nilai-nilai yang ingin Anda Gunakan untuk
mengisi ListBox DNS.
3. Pada Alat Menu, titik untukMakro, lalu klik Visual Basic Editor.
4. Pada Masukkan Menu, klikUserForm untuk memasukkan UserForm di buku
kerja Anda.
5. Menambahkan sebuah ListBox DNS untuk UserForm.
6. Pada Masukkan Menu, klikModul untuk menyisipkan lembar modul.
7. Dalam jendela kode, ketik kode berikut:
8. Sub PopulateListWithHorizontalRange()
9.
10.
For Each x In Sheet1.Range("A1:E1")
11.
UserForm1.ListBox1.AddItem x.Value
12.
Next
13.
14.
UserForm1.Show
15.
End Sub
16. Pada Alat Menu, klikMacro, klikPopulateListWithHorizontalRange, lalu
klikMenjalankan.
Makro prosedur loop melalui sel-sel A1:E5 pada Sheet1, menambahkan nilai-nilai untuk
ListBox1 satu pada satu waktu.
CatatanListBox1 tidak terikat untuk A1:E5 sel pada Sheet1.
Bagaimana mengembalikan beberapa nilai dari sebuah ListBox DNS yang terikat
untuk beberapa kolom data
Anda dapat memformat ListBox kontrol untuk menampilkan lebih dari satu kolom data. Ini
berarti bahwa ListBox DNS menampilkan lebih dari satu unsur pada setiap baris dari daftar.
Untuk kembali beberapa nilai dari item yang dipilih dalam daftar, ikuti langkah berikut:
1. Memulai Excel, dan kemudian buka buku kerja baru kosong.
2. Tipe data berikut dalam sel-sel yang ditunjukkan pada Sheet1:
Perkecil tabel iniPerbesar tabel ini
A1:
tahun
A2: 1996
A3: 1996
A4: 1997
A5: 1997
B1: wilayah C1: penjualan
B2: Utara
B3: Selatan
B4: Utara
B5: Selatan
C2: 140
C3: 210
C4: 190
C5: 195
3. Pada Alat Menu, titik untukMakro, lalu klik Visual Basic Editor.
4. Pada Masukkan Menu, klikUserForm untuk memasukkan UserForm di buku
kerja Anda.
5. Tambahkan kontrol Label untuk UserForm.
6. Menambahkan sebuah ListBox DNS untuk UserForm.
7. Klik kanan ListBox, lalu klikProperti.
8. Ketik atau pilih nilai-nilai yang ditunjukkan untuk Properti berikut ListBox
DNS seperti yang tercantum dalam tabel berikut:
9.
10.
11.
12.
13.
Property
Value
---------------------------BoundColumn
1
ColumnCount
3
ColumnHeads
True
RowSource
Sheet1!A2:A5
14. Klik dua kali ListBox kontrol untuk Menampilkan jendela kode untuk ListBox
DNS.
15. Dalam jendela kode, ketik kode berikut:
16.
17.
18.
19.
20.
21.
22.
23.
24.
Private Sub ListBox1_Change()
Dim SourceData As Range
Dim Val1 As String, Val2 As String, Val3 As String
Set SourceRange = Range(ListBox1.RowSource)
Val1 = ListBox1.Value
Val2 = SourceRange.Offset(ListBox1.ListIndex,
1).Resize(1, 1).Value
25.
Val3 = SourceRange.Offset(ListBox1.ListIndex,
2).Resize(1, 1).Value
26.
27.
Label1.Caption = Val1 & " " & Val2 & " " & Val3
28.
End Sub
29. Pada Menjalankan Menu, klik Menjalankan Sub UserForm.
Ketika Anda klik entri dalam ListBox DNS, label perubahan untuk menampilkan semua tiga
unsur di Catatan bahwa.
Cara menghapus semua item dari sebuah ListBox DNS yang terikat ke lembar kerja
Untuk menghapus semua item dari sebuah ListBox DNS yang terikat ke lembar kerja, jelas
nilai yang disimpan di RowSource properti. Untuk menghapus item dari sebuah ListBox
DNS yang terikat ke lembar kerja, ikuti langkah berikut:
1. Memulai Excel, dan kemudian buka buku kerja baru kosong.
2. Dalam sel A1:A5 pada Sheet1, ketik nilai-nilai yang ingin Anda Gunakan untuk
mengisi ListBox DNS.
3. Pada Alat Menu, titik untukMakro, lalu klik Visual Basic Editor.
4. Pada Masukkan Menu, klikUserForm untuk memasukkan UserForm di buku
kerja Anda.
5. Menambahkan sebuah ListBox DNS untuk UserForm.
6. Klik kanan ListBox kontrol, dan kemudian Klik Properti.
7. Dalam properti RowSource , ketik Sheet1!A1:A5.
8. Tambahkan kontrol CommandButton untuk UserForm.
9. Klik dua kali CommandButton kontrol untuk Menampilkan jendela kode
untuk control CommandButton ke atas .
10. Dalam jendela kode, ketik kode berikut untuk Klik CommandButton1 acara:
11.
12.
13.
14.
Private Sub CommandButton1_Click()
ListBox1.RowSource = ""
End Sub
15. Pada Menjalankan Menu, klik Menjalankan Sub UserForm.
ListBoxDNS yang Anda tambahkan ke UserForm diisi dengan nilai-nilai yang
Anda masukkan pada Sheet1.
16. Klik CommandButton1.
Semua item yang dihapus dari ListBox1.
Cara menghapus semua item dari sebuah ListBox DNS yang tidak terikat ke lembar
kerja
Ada tidak ada satu VBA perintah yang menghapus semua item dari sebuah ListBox DNS jika
daftar tidak terikat pada lembar kerja. Untuk menghapus semua item dari sebuah ListBox
DNS yang dihuni dari sebuah array Visual Basic, ikuti langkah-langkah:
1. Memulai Excel, dan kemudian buka buku kerja baru kosong.
2. Pada Alat Menu, titik untukMakro, lalu klik Visual Basic Editor.
3. Pada Masukkan Menu, klikUserForm untuk memasukkan UserForm di buku
kerja Anda.
4. Menambahkan sebuah ListBox DNS untuk UserForm.
5. Pada Masukkan Menu, klikModul untuk menyisipkan lembar modul.
6. Dalam jendela kode, ketik kode berikut:
7. Sub PopulateListBox()
8.
9.
Dim MyArray As Variant
10.
Dim Ctr As Integer
11.
MyArray = Array("Apples", "Oranges", "Peaches",
"Bananas", "Pineapples")
12.
13.
For Ctr = LBound(MyArray) To UBound(MyArray)
14.
UserForm1.ListBox1.AddItem MyArray(Ctr)
15.
Next
16.
17.
UserForm1.Show
18.
End Sub
19. Tambahkan kontrol CommandButton untuk UserForm.
20. Klik dua kali CommandButton kontrol untuk Menampilkan jendela kode
untuk control CommandButton ke atas .
21. Dalam jendela kode, ketik kode berikut untuk Klik CommandButton1 acara:
22.
23.
24.
25.
26.
27.
Private Sub CommandButton1_Click()
For i = 1 To ListBox1.ListCount
ListBox1.RemoveItem 0
Next I
End Sub
28. Pada Alat Menu, klikMacro, klik PopulateListBox, lalu klikMenjalankan.
ListBox DNS dihuni, dan kemudian muncul UserForm.
29. Klik CommandButton1.
Semua item yang dihapus dari ListBox1.
Untuk informasi tambahan tentang ListBox DNS, klik artikel berikut nomor untuk melihat
artikel di dalam Basis Pengetahuan Microsoft:
161598
(http://support.microsoft.com/kb/161598/ )
OFF: Bagaimana menambahkan data ke ComboBox atau ListBox di Excel atau Word
211446
(http://support.microsoft.com/kb/211446/ )
XL2000: TextColumn properti menampilkan hanya kolom pertama
211896
(http://support.microsoft.com/kb/211896/ )
XL2000: Cara untuk mensimulasikan kombinasi kontrol Edit daftar untuk UserForms
211899
(http://support.microsoft.com/kb/211899/ )
XL2000: Masalah menetapkan judul kolom di ListBox DNS
213721
(http://support.microsoft.com/kb/213721/ )
XL2000: Cara menghapus semua item dari ListBox atau ComboBox
213722
(http://support.microsoft.com/kb/213722/ )
XL2000: Cara menggunakan properti TextColumn
213723
(http://support.microsoft.com/kb/213723/ )
XL2000: Bagaimana untuk kembali nilai-nilai dari kotak yang menampilkan beberapa kolom
213746
(http://support.microsoft.com/kb/213746/ )
XL2000: bagaimana untuk mengisi kotak daftar kontrol dengan beberapa rentang
213748
(http://support.microsoft.com/kb/213748/ )
XL2000: bagaimana untuk mengisi kotak daftar satu berdasarkan lain kotak daftar
213752
(http://support.microsoft.com/kb/213752/ )
XL2000: Menggunakan metode AddItem yang menyebabkan galat ketika RowSource adalah
data yang terikat
213756
(http://support.microsoft.com/kb/213756/ )
XL2000: Menggunakan metode RemoveItem dengan ListBox atau ComboBox kontrol
213759
(http://support.microsoft.com/kb/213759/ )
XL2000: bagaimana untuk menentukan item yang dipilih dalam kotak daftar
Kontrol ComboBox
Anda dapat menggunakan kontrol ComboBox sebagai kotak drop-down daftar, atau sebagai
sebuah kotak kombo yang mana Anda dapat Pilih nilai dalam daftar atau ketik nilai baru.
Properti gaya menentukan jika kontrol ComboBox bertindak sebagai daftar drop-down box
atau kotak kombo.
Catatan Semua contoh di bagian sebelumnya untuk ListBox DNS juga dapat diterapkan ke
kontrol ComboBox , kecuali untuk "cara mendapatkan item yang dipilih dalam contoh
beberapa pilih ListBox DNS".
Bagaimana menambahkan item baru ke daftar jika kontrol ComboBox tidak terikat ke
lembar kerja
Ketika Anda mengetik nilai yang sudah tidak dalam daftar di ComboBox kontrol, Anda
mungkin ingin menambahkan nilai baru ke daftar. Untuk menambahkan nilai baru yang
diketik di ComboBox kontrol jika kontrol ComboBox tidak terikat pada lembar kerja, ikuti
langkah berikut:
1. Memulai Excel, dan kemudian buka buku kerja baru kosong.
2. Pada Alat Menu, titik untukMakro, lalu klik Visual Basic Editor.
3. Pada Masukkan Menu, klikUserForm untuk memasukkan UserForm di buku
kerja Anda.
4. Tambahkan kontrol ComboBox untuk UserForm.
5. Pada Masukkan Menu, klikModul untuk menyisipkan lembar modul.
6. Dalam jendela kode, ketik kode berikut:
7. Sub PopulateComboBox()
8.
9.
Dim MyArray As Variant
10.
Dim Ctr As Integer
11.
MyArray = Array("Apples", "Oranges", "Peaches",
"Bananas", "Pineapples")
12.
13.
For Ctr = LBound(MyArray) To Ubound(MyArray)
14.
UserForm1.ComboBox1.AddItem MyArray(Ctr)
15.
Next
16.
17.
UserForm1.Show
18.
End Sub
19. Tambahkan kontrol CommandButton untuk UserForm.
20. Klik dua kali CommandButton kontrol untuk Menampilkan jendela kode
untuk control CommandButton ke atas .
21. Dalam jendela kode, ketik kode berikut untuk Klik CommandButton1 acara:
22.
23.
24.
25.
26.
27.
28.
29.
30.
Private Sub CommandButton1_Click()
Dim listvar As Variant
listvar = ComboBox1.List
On Error Resume Next
' If the item is not found in the list...
If IsError(WorksheetFunction.Match(ComboBox1.Value,
listvar, 0)) Then
31.
' add the new value to the list.
32.
ComboBox1.AddItem ComboBox1.Value
33.
End If
34.
End Sub
35. Pada Alat Menu, klikMacro, klik PopulateListBox, lalu klikMenjalankan.
Kontrol ComboBox dihuni, dan kemudian muncul UserForm.
36. Mengendalikan ComboBox , ketik Mangga (atau salah satu nilai yang sudah
tidak dalam daftar).
37. Klik CommandButton1.
Nilai baru yang diketik sekarang muncul pada akhir daftar.
Bagaimana menambahkan item baru ke daftar jika kontrol ComboBox terikat ke
lembar kerja
Ketika pengguna jenis nilai yang sudah tidak dalam daftar di ComboBox kontrol, Anda
mungkin ingin menambahkan nilai baru ke daftar. Untuk menambahkan nilai baru yang
diketik di ComboBox kontrol ke dalam daftar, ikuti langkah berikut:
1. Memulai Excel, dan kemudian buka buku kerja baru kosong.
2. Dalam sel A1:A5 pada Sheet1, ketik nilai-nilai yang ingin Anda Gunakan untuk
mengisi ComboBox kontrol.
3. Pilih sel A1:A5 pada Sheet1.
4. Pada Masukkan Menu, titik untukNama, lalu klik Define.
DalamNama-nama dalam buku kerja kotak, jenis ListRange , kemudian klik
Oke. Hal ini menciptakan nama ditetapkan ListRange. Anda dapat
menggunakan nama ditetapkan ListRange untuk mengikat properti
RowSource dari kontrol ComboBox lembar kerja.
5. Pada Alat Menu, titik untukMakro, lalu klik Visual Basic Editor.
6. Pada Masukkan Menu, klikUserForm untuk memasukkan UserForm di buku
kerja Anda.
7. Tambahkan kontrol ComboBox untuk UserForm.
8. Dalam Properti untuk ComboBox1, ketik Sheet1!ListRange
sebagaiRowSource properti.
9. Tambahkan kontrol CommandButton untuk UserForm.
10. Klik dua kali CommandButton kontrol untuk Menampilkan jendela kode
untuk control CommandButton ke atas .
11. Dalam jendela kode, ketik kode berikut untuk Klik CommandButton1 acara:
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
Private Sub CommandButton1_Click()
Dim SourceData As Range
Dim found As Object
Set SourceData = Range("ListRange")
Set found = Nothing
' Try to find the value on the worksheet.
Set found = SourceData.Find(ComboBox1.Value)
22.
23.
24.
25.
' If the item is not found in the list...
If found Is Nothing Then
' redefine ListRange.
SourceData.Resize(SourceData.Rows.Count + 1,
1).Name = "ListRange"
26.
' Add the new item to the end of the list on the
worksheet.
27.
SourceData.Offset(SourceData.Rows.Count,
0).Resize(1, 1).Value _
28.
= ComboBox1.Value
29.
' Reset the list displayed in the ComboBox.
30.
ComboBox1.RowSource =
Range("listrange").Address(external:=True)
31.
End If
32.
End Sub
33. Pada Menjalankan Menu, klik Menjalankan Sub UserForm.
UserForm akan muncul pada Sheet1.
34. Mengendalikan ComboBox , ketik nilai yang tidak sudah di daftar.
35. Klik CommandButton1.
Item baru yang diketik di ComboBox kontrol ditambahkan ke daftar, dan daftar yang terikat
kontrol ComboBox diperluas untuk mencakup sel A1:A6.
Bagaimana menampilkan daftar kontrol ComboBox ketika UserForm muncul
Kadang-kadang, ini mungkin berguna untuk menampilkan daftar kontrol ComboBox ketika
UserForm pertama muncul. Contoh berikut menggunakan Aktifkan peristiwa UserForm.
Untuk menampilkan daftar kontrol ComboBox , ikuti langkah berikut:
1. Memulai Excel, dan kemudian buka buku kerja baru kosong.
2. Dalam sel A1:A5 pada Sheet1, ketik nilai-nilai yang ingin Anda Gunakan untuk
mengisi ComboBox kontrol.
3. Pada Alat Menu, titik untukMakro, lalu klik Visual Basic Editor.
4. Pada Masukkan Menu, klikUserForm untuk memasukkan UserForm di buku
kerja Anda.
5. Tambahkan kontrol ComboBox untuk UserForm.
6. Dalam Properti untuk ComboBox1, ketik Sheet1!A1:A5 sebagaiRowSource
properti.
7. Klik dua kali UserForm untuk menampilkan Jendela kode untuk UserForm.
8. Dalam jendela kode, ketik kode berikut untuk Klik CommandButton acara:
9. Private Sub UserForm_Activate()
10.
11.
ComboBox1.DropDown
12.
End Sub
13. Pada Menjalankan Menu, klik Menjalankan Sub UserForm.
UserForm muncul di Sheet1, dan Anda dapat melihat daftar untuk ComboBox1.
Bagaimana menampilkan daftar satu kontrol ComboBox ketika Anda membuat pilihan
dalam kontrol ComboBox lainnya
Untuk secara otomatis menampilkan daftar satu kontrol ComboBox ketika pilihan yang
dibuat di kontrol ComboBox lainnya, ikuti langkah berikut:
1. Memulai Excel, dan kemudian buka buku kerja baru kosong.
2. Dalam sel A1:A10 pada Sheet1, ketik nilai-nilai yang ingin Anda Gunakan
untuk mengisi ComboBox kontrol.
3. Pada Alat Menu, titik untukMakro, lalu klik Visual Basic Editor.
4. Pada Masukkan Menu, klikModul.
5. Dalam jendela kode untuk modul, ketik kode berikut:
6. Sub DropDown_ComboBox()
7.
8.
UserForm1.ComboBox2.DropDown
9.
End Sub
10. Pada Masukkan Menu, klikUserForm untuk memasukkan UserForm di buku
kerja Anda.
11. Tambahkan kontrol ComboBox untuk UserForm.
12. Dalam Properti untuk ComboBox1, ketik Sheet1!A1:A5 sebagaiRowSource
properti.
13. Klik dua kali ComboBox Control untuk membuka jendela kode untuk kontrol
ComboBox .
14. Dalam jendela kode untuk kontrol ComboBox , ketik kode berikut untuk Klik
ComboBox acara:
15.
16.
17.
18.
Private Sub ComboBox1_Click()
Application.OnTime Now, "DropDown_ComboBox"
End Sub
19. Tambahkan kontrol ComboBox kedua untuk UserForm.
20. Dalam Properti untuk ComboBox2, ketik Sheet1!A6:A10 sebagaiRowSource
properti.
21. Pada Menjalankan Menu, klik Menjalankan Sub UserForm.
Ketika Anda mengklik item dalam daftar ComboBox1 , daftar untuk ComboBox2 secara
otomatis muncul.
Untuk informasi tambahan tentang kontrol ComboBox, klik nomor artikel berikut ini untuk
melihat artikel di dalam Basis Pengetahuan Microsoft:
161598
(http://support.microsoft.com/kb/161598/ )
OFF: Bagaimana menambahkan data ke ComboBox atau ListBox di Excel atau Word
211446
(http://support.microsoft.com/kb/211446/ )
XL2000: TextColumn properti menampilkan hanya kolom pertama
211899
(http://support.microsoft.com/kb/211899/ )
XL2000: Masalah menetapkan judul kolom di ListBox DNS
213717
(http://support.microsoft.com/kb/213717/ )
XL2000: Galat Run-time menggunakan metode DropDown dengan ComboBox
213718
(http://support.microsoft.com/kb/213718/ )
XL2000: Bagaimana untuk menampilkan daftar ComboBox ketika UserForm ditampilkan
213721
(http://support.microsoft.com/kb/213721/ )
XL2000: Cara menghapus semua item dari ListBox atau ComboBox
213722
(http://support.microsoft.com/kb/213722/ )
XL2000: Cara menggunakan properti TextColumn
213752
(http://support.microsoft.com/kb/213752/ )
XL2000: Menggunakan metode AddItem yang menyebabkan galat ketika data RowSource
adalah terikat
213756
(http://support.microsoft.com/kb/213756/ )
XL2000: Menggunakan metode RemoveItem dengan ListBox atau ComboBox kontrol
Kontrol frame
Gunakan kontrol Frame untuk kelompok logis terkait item di UserForm. Kontrol bingkai
sering digunakan untuk kelompok kontrol OptionButton .
Cara loop melalui semua kontrol pada kontrol Frame
Untuk menggunakan untuk masing-masing...Berikutnya loop untuk mengakses semua
kontrol dalam kontrol Frame , ikuti langkah berikut:
1. Memulai Excel, dan kemudian buka buku kerja baru kosong.
2. Pada Alat Menu, titik untukMakro, lalu klik Visual Basic Editor.
3. Pada Masukkan Menu, klikUserForm untuk memasukkan UserForm di buku
kerja Anda.
4. Tambahkan kontrol Frame untuk UserForm.
5. Menambahkan kontrol OptionButton kontrol Frame .
Ulangi langkah ini untuk menambahkan dua lebih OptionButton kontrol
mengendalikan Frame .
6. Klik dua kali Bingkai Control untuk membuka Jendela kode untuk kontrol
Frame .
7. Dalam jendela kode, ketik kode berikut untuk Klik Frame acara:
8. Private
9.
10.
11.
12.
13.
14.
15.
End Sub
Sub Frame1_Click()
Dim Ctrl As Control
For Each Ctrl In Frame1.Controls
Ctrl.Enabled = Not Ctrl.Enabled
Next
16. Pada Menjalankan Menu, klik Menjalankan Sub UserForm.
17. Di UserForm, klik Bingkaikontrol.
Pertama kali Anda meng-klik kontrol Frame , semua kontrol dalam kontrol Frame tidak
tersedia. Jika Anda mengklik Bingkaikontrol lagi, kontrol tersedia lagi.
Kontrol OptionButton
Anda dapat menggunakan kelompok kontrol OptionButton untuk membuat satu pilihan
antara sekelompok pilihan. Kamu bisa menggunakan salah satu teknik berikut untuk grup
OptionButton kontrol:
Kontrol frame
GroupName properti
CatatanPada nilai, nilai Ya dan nilai sebenarnya menunjukkan bahwa OptionButton yang
dipilih. Nilai Off , tidak ada nilai dan nilai False menunjukkan bahwa OptionButton tidak
dipilih.
Cara menentukan OptionButton kontrol yang dipilih ketika kontrol OptionButton pada
kontrol Frame
Ketika Anda mengelompokkan OptionButtons kontrol dengan menggunakan kontrol
bingkai , Anda dapat menentukan kontrol OptionButton yang dipilih oleh perulangan
melalui semua kontrol dalam kontrol Frame dan memeriksa properti nilai dari setiap kontrol.
Untuk menentukan OptionButton kontrol yang dipilih, ikuti langkah berikut:
1. Memulai Excel, dan kemudian buka buku kerja baru kosong.
2. Pada Alat Menu, titik untukMakro, lalu klik Visual Basic Editor.
3. Pada Masukkan Menu, klikUserForm untuk memasukkan UserForm di buku
kerja Anda.
4. Tambahkan kontrol Frame untuk UserForm.
5. Menambahkan kontrol OptionButton kontrol Frame .
Ulangi langkah ini untuk menambahkan dua lebih OptionButton kontrol
mengendalikan Frame .
6. Tambahkan control CommandButton ke atas UserForm luar kontrol Frame .
7. Klik dua kali CommandButton kontrol untuk Menampilkan jendela kode
untuk UserForm.
8. Dalam jendela kode, ketik kode berikut untuk Klik CommandButton1 acara:
9. Private Sub CommandButton1_Click()
10.
11.
For Each x In Frame1.Controls
12.
If x.Value = True Then
13.
MsgBox x.Caption
14.
End If
15.
Next
16.
End Sub
17. Pada Menjalankan Menu, klik Menjalankan Sub UserForm.
18. Dalam UserForm, klik satu OptionButton kontrol, dan kemudian
klikCommandButton1.
Akan muncul kotak pesan yang berisi keterangan dari saat ini dipilih OptionButton kontrol.
Cara menentukan OptionButton kontrol yang dipilih
Tujuan dari contoh berikut adalah untuk menentukan OptionButton kontrol yang dipilih
dalam Group1. Untuk membuat UserForm yang memiliki dua kelompok kontrol
OptionButton , ikuti langkah berikut:
1. Memulai Excel, dan kemudian buka buku kerja baru kosong.
2. Pada Alat Menu, titik untukMakro, lalu klik Visual Basic Editor.
3. Pada Masukkan Menu, klikUserForm untuk memasukkan UserForm di buku
kerja Anda.
4. Tambahkan kontrol Frame untuk UserForm.
5. Tambahkan kontrol OptionButton dalam kontrol Frame .
Ulangi langkah ini untuk menambahkan dua lebih OptionButton kontrol
mengendalikan Frame .
6. Untuk setiap OptionButton kontrol, ketik Group1 di GroupName properti.
7. Ulangi langkah 4 dan 5 untuk membuat kedua kontrol Frame yang berisi tiga
OptionButton kontrol.
8. Untuk setiap OptionButton kontrol di kontrol Frame kedua, ketik Group2 di
GroupName properti.
9. Tambahkan control CommandButton ke atas UserForm luar kontrol Frame .
10. Klik dua kali CommandButton kontrol untuk Menampilkan jendela kode
untuk UserForm.
11. Dalam jendela kode, ketik kode berikut untuk Klik CommandButton1 acara:
12.
13.
14.
15.
16.
17.
18.
Private Sub CommandButton1_Click()
Dim x As Control
control.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
' Loop through ALL the controls on the UserForm.
For Each x In Me.Controls
' Check to see if "Option" is in the Name of each
If InStr(x.Name, "Option") Then
' Check Group name.
If x.GroupName = "Group1" Then
' Check the status of the OptionButton.
If x.Value = True Then
MsgBox x.Caption
Exit For
End If
End If
End If
Next
End Sub
31. Pada Menjalankan Menu, klik Menjalankan Sub UserForm.
32. Di UserForm, klik satu OptionButton kontrol di Group1, dan kemudian
klikCommandButton1.
Muncul kotak pesan yang berisi keterangan OptionButton kontrol yang saat ini dipilih.
Untuk informasi tambahan tentang OptionButton kontrol, klik nomor artikel berikut ini untuk
melihat artikel pada Basis Pengetahuan Microsoft:
213724
(http://support.microsoft.com/kb/213724/ )
XL2000: Masalah menggunakan properti TripleState untuk tombol pilihan
Kotak centang kontrol
Anda dapat menggunakan kotak centang kontrol untuk menunjukkan nilai true atau false.
Sebuah kotak centang kontrol yang muncul dengan tanda centang di dalamnya menunjukkan
nilai Benar. Kotak centang yang muncul dengan tanda centang tidak menunjukkan nilai
salah. Jika nilai properti TripleStatebenar, kotak centang kontrol juga dapat memiliki nilai
Null. Sebuah kotak centang kontrol yang memiliki nilai Null tampaknya tidak tersedia.
CatatanPada nilai, nilai Ya dan nilai sebenarnya menunjukkan bahwa kontrol kotak
centang dipilih. Nilai Off , tidak ada nilai dan nilai False menunjukkan bahwa kotak
centang kontrol dibersihkan.
Bagaimana memeriksa nilai kotak centang kontrol
Menggunakan nilai properti untuk mengembalikan nilai sekarang dari kotak centang
kontrol, ikuti langkah berikut:
1. Memulai Excel, dan kemudian buka buku kerja baru kosong.
2. Pada Alat Menu, titik untukMakro, lalu klik Visual Basic Editor.
3. Pada Masukkan Menu, klikUserForm untuk memasukkan UserForm di buku
kerja Anda.
4. Tambahkan kotak centang kontrol untuk UserForm.
5. Dalam daftar properti untuk CheckBox1, pilih Benar sebagai properti
TripleState .
6. Klik dua kali Kotak centang kontrol untuk Menampilkan jendela kode untuk
kotak centang kontrol.
7. Dalam jendela kode, ketik kode berikut untuk CheckBox1 perubahan acara:
8. Private Sub CheckBox1_Change()
9.
10.
Select Case CheckBox1.Value
11.
Case True
12.
CheckBox1.Caption = "True"
13.
Case False
14.
15.
16.
17.
18.
CheckBox1.Caption = "False"
Case Else
CheckBox1.Caption = "Null"
End Select
End Sub
19. Pada Menjalankan Menu, klik Menjalankan Sub UserForm.
Ketika Anda mengklik Kotak centang kontrol, Caption kotak centang kontrol perubahan
untuk mencerminkan nilai saat ini.
Kontrol ToggleButton
Kontrol ToggleButton memiliki penampilan yang sama sebagai CommandButton control
hingga Anda mengklik itu. Ketika Anda mengklik kontrol ToggleButton , tampaknya harus
ditekan atau ditekan. Nilai properti kontrol ToggleButton adalah palsu dan benar ketika
tombol dipilih ketika tombol tidak dipilih. Jika nilai properti TripleStatebenar,
ToggleButton kontrol juga dapat memiliki nilai Null. Kontrol ToggleButton yang
mempunyai nilai Null muncul tidak tersedia.
CatatanPada nilai, nilai Ya dan nilai sebenarnya menunjukkan bahwa kontrol
ToggleButton yang dipilih. Nilai Off , tidak ada nilai dan nilai False menunjukkan bahwa
kontrol ToggleButton yang tidak dipilih.
Cara mendapatkan nilai kontrol ToggleButton
Untuk mendapatkan nilai ToggleButton kontrol, ikuti langkah berikut:
1. Memulai Excel, dan kemudian buka buku kerja baru kosong.
2. Pada Alat Menu, titik untukMakro, lalu klik Visual Basic Editor.
3. Pada Masukkan Menu, klikUserForm untuk memasukkan UserForm di buku
kerja Anda.
4. Tambahkan kontrol ToggleButton pada UserForm.
5. Tambahkan kontrol Label untuk UserForm.
6. Klik dua kali ToggleButton kontrol untuk Buka jendela kode untuk
ToggleButton kontrol.
7. Dalam jendela kode, ketik kode berikut untuk ToggleButton1Click acara:
8. Private Sub ToggleButton1_Click()
9.
10.
If ToggleButton1.Value = True Then
11.
' Set UserForm background to Red.
12.
Me.BackColor = RGB(255, 0, 0)
13.
Else
14.
' Set UserForm background to Blue.
15.
16.
17.
Me.BackColor = RGB(0, 0, 255)
End If
End Sub
18. Pada Menjalankan Menu, klik Menjalankan Sub UserForm.
Ketika Anda mengklik kontrol ToggleButton , warna latar belakang perubahan UserForm.
Cara membuat sekelompok saling eksklusif ToggleButton kontrol
Contoh ini menggunakan MouseUp event untuk menetapkan variabel dan memanggil
prosedur ExclusiveToggleButtons . Prosedur ExclusiveToggleButtons menentukan
ToggleButton kontrol yang dipilih, dan kemudian membatalkan yang lain. Untuk membuat
sekelompok saling eksklusif ToggleButton kontrol, ikuti langkah berikut:
1. Memulai Excel, dan kemudian buka buku kerja baru kosong.
2. Pada Alat Menu, titik untukMakro, lalu klik Visual Basic Editor.
3. Pada Masukkan Menu, klikModul.
4. Dalam jendela kode untuk modul, ketik kode berikut:
5. ' Variable that holds the name of the ToggleButton that was
clicked.
6. Public clicked As String
7.
8. Sub ExclusiveToggleButtons()
9.
10.
Dim toggle As Control
11.
12.
' Loop through all the ToggleButtons on Frame1.
13.
For Each toggle In UserForm1.Frame1.Controls
14.
15.
' If Name of ToggleButton matches name of
ToggleButton
16.
' that was clicked...
17.
If toggle.Name = clicked Then
18.
'...select the button.
19.
toggle.Value = True
20.
Else
21.
'...otherwise clear the selection of the button.
22.
toggle.Value = False
23.
End If
24.
Next
25.
End Sub
26. Pada Masukkan Menu, klikUserForm untuk memasukkan UserForm di buku
kerja Anda.
27. Tambahkan kontrol Frame untuk UserForm.
28. Tambahkan kontrol ToggleButton di kontrol Frame .
Ulangi langkah ini untuk menambahkan dua lebih ToggleButton kontrol
mengendalikan Frame .
29. Klik dua kali Bingkai kontrol untuk menampilkan jendela kode untuk
UserForm.
30. Dalam jendela kode untuk modul, ketik kode berikut untuk ToggleButton
MouseUp event:
31.
_
Private Sub ToggleButton1_MouseUp(ByVal Button As Integer,
32.
ByVal Y As Single)
33.
34.
35.
36.
37.
38.
39.
ByVal Shift As Integer, ByVal X As Single,
clicked = ToggleButton1.Name
Application.OnTime Now, "ExclusiveToggleButtons"
End Sub
Private Sub ToggleButton2_MouseUp(ByVal Button As
Integer, _
40.
ByVal Shift As Integer, ByVal X As Single,
ByVal Y As Single)
41.
42.
clicked = ToggleButton2.Name
43.
Application.OnTime Now, "ExclusiveToggleButtons"
44.
45.
End Sub
46.
47.
Private Sub ToggleButton3_MouseUp(ByVal Button As
Integer, _
48.
ByVal Shift As Integer, ByVal X As Single,
ByVal Y As Single)
49.
50.
clicked = ToggleButton3.Name
51.
Application.OnTime Now, "ExclusiveToggleButtons"
Disertakan contoh-contoh dan Microsoft Visual Basic for Applications (VBA) makro yang
menunjukkan kepada Anda bagaimana untuk mengambil keuntungan dari kemampuan
UserForms dan bagaimana menggunakan kendali ActiveX ™ yang tersedia untuk
UserForms.
Pengenalan prinsip-prinsip dasar UserForms menjelaskan bagaimana menampilkan
UserForms, bagaimana untuk menyembunyikan sementara UserForms, dan bagaimana
untuk mengabaikan UserForms. Anda juga ditunjukkan bagaimana menggunakan peristiwaperistiwa yang paling umum yang terkait dengan UserForms — Menginisialisasi acara, Klik
acara, dan Mengakhiri acara. Satu atau beberapa contoh berikut menunjukkan cara
menggunakan masing-masing kendali ActiveX ™ berikut di UserForm:
Label kontrol
TextBox kontrol
CommandButton kontrol
ListBox kontrol
ComboBox kontrol
Bingkai kontrol
OptionButton kontrol
kotak centang kontrol
ToggleButton kontrol
TabStrip kontrol
MultiPage kontrol
ScrollBar kontrol
SpinButton kontrol
RefEdit kontrol
Gambar kontrol
Kembali ke atas | Berikan Masukan
PENGENALAN
Artikel ini menjelaskan cara menggunakan VBA untuk membuat perubahan dalam
UserForms dalam Excel.
Kembali ke atas | Berikan Masukan
Informasi lebih lanjut
Microsoft menyediakan pemrogaman hanya untuk ilustrasi, tanpa garansi baik tersurat
maupun tersirat. Ini mencakup, namun tidak terbatas pada, jaminan tersirat dapat
diperjualbelikan atau kesesuaian untuk tujuan tertentu. Artikel ini mengasumsikan bahwa
Anda sudah terbiasa dengan bahasa pemrogaman yang ditunjukkan dan dengan alat yang
digunakan untuk membuat dan memperbaiki prosedur. Teknisi Microsoft dapat membantu
menjelaskan fungsionalitas prosedur tertentu, tetapi mereka tidak akan mengubah contoh
tersebut untuk menyediakan fungsionalitas tambahan atau menyusun prosedur untuk
memenuhi persyaratan khusus.
Dasar-dasar UserForm
Cara menampilkan UserForm
Sintaks yang digunakan untuk menampilkan UserForm pemrograman berikut:
UserFormName.Tampilkan
Untuk menampilkan UserForm yang bernama UserForm1, menggunakan berikut kode:
UserForm1.Show
Anda dapat memuat UserForm ke kehabisan memori tanpa benar-benar menampilkan itu.
Mungkin diperlukan UserForm kompleks beberapa detik untuk muncul. Karena Anda dapat
preload UserForm ke kehabisan memori, Anda dapat memutuskan kapan harus dikenakan
overhead ini. Untuk memuat UserForm1 ke dalam kehabisan memori tanpa menampilkan itu,
gunakan kode berikut:
Load UserForm1
Untuk menampilkan UserForm, Anda harus menggunakan metode Tampilkan yang
sebelumnya ditunjukkan.
Cara Sembunyikan untuk sementara UserForm
Jika Anda ingin menyembunyikan sementara UserForm, gunakan metode yang
menyembunyikan . Anda mungkin ingin menyembunyikan UserForm jika aplikasi Anda
melibatkan bergerak antara UserForms. Untuk menyembunyikan UserForm, gunakan kode
berikut:
UserForm1.Hide
Untuk informasi tambahan, klik nomor artikel berikut ini untuk melihat artikel di Microsoft
Knowledge Base:
213747
(http://support.microsoft.com/kb/213747/ )
XL2000: Bagaimana untuk beralih antara kustom UserForms dengan tombol tekan perintah
Bagaimana menghapus UserForm dari kehabisan memori
Untuk menghapus UserForm dari kehabisan memori, menggunakan pernyataan
membongkar . Untuk membongkar UserForm yang bernama UserForm1, gunakan kode
berikut:
Unload UserForm1
Jika Anda membongkar UserForm di prosedur kejadian yang dikaitkan dengan UserForm
atau itulah dikaitkan dengan kontrol pada UserForm (misalnya, mengklik control
CommandButton ke atas ), Anda dapat menggunakan kata bukti kunci "Me" bukan nama
UserForm. Untuk menggunakan "Me" kata bukti kunci untuk membongkar UserForm,
gunakan kode berikut:
Unload Me
Bagaimana menggunakan peristiwa-peristiwa UserForm
UserForms mendukung banyak peristiwa standar yang Anda dapat melampirkan VBA
prosedur untuk. Ketika acara terjadi, prosedur yang Anda melekat acara berjalan. Tindakan
yang dilakukan oleh pengguna dapat memulai beberapa peristiwa. Di antara yang paling
sering digunakan peristiwa untuk UserForm adalah acara menginisialisasi , acara Klik dan
Hentikan acara.
Catatan Modul Visual Basic yang berisi prosedur kejadian mungkin disebut sebagai modul
"di belakang" UserForm. Modul yang berisi acara prosedur ini tidak terlihat dalam koleksi
modul jendela Explorer proyek Microsoft Visual Dasar Editor. Anda harus mengklik dua kali
tubuh UserForm untuk melihat UserForm Kode modul.
Bagaimana untuk menjebak UserForm peristiwa
Untuk menjebak UserForm peristiwa, ikuti langkah berikut:
1. Buat buku kerja baru di Excel.
2. Pada Alat Menu, titik untukMakro, lalu klik Visual Basic Editor.
3. Pada Masukkan Menu, klikUserForm untuk memasukkan UserForm di buku
kerja Anda.
4. klik ganda UserForm untuk menampilkan Jendela kode untuk UserForm.
5. Dalam modul, ketik kode berikut:
6. Private Sub UserForm_Click()
7.
8.
Me.Height = Int(Rnd * 500)
9.
Me.Width = Int(Rnd * 750)
10.
11.
End Sub
12.
13.
Private Sub UserForm_Initialize()
14.
15.
Me.Caption = "Events Events Events!"
16.
Me.BackColor = RGB(10, 25, 100)
17.
18.
End Sub
19.
20.
Private Sub UserForm_Resize()
21.
22.
msg = "Width: " & Me.Width & Chr(10) & "Height: " &
Me.Height
23.
MsgBox prompt:=msg, Title:="Resize Event"
24.
25.
End Sub
26.
27.
28.
Private Sub UserForm_QueryClose(Cancel As Integer,
CloseMode As Integer)
29.
30.
msg = "Now Unloading " & Me.Caption
31.
MsgBox prompt:=msg, Title:="QueryClose Event"
32.
33.
End Sub
34.
35.
Private Sub UserForm_Terminate()
36.
37.
msg = "Now Unloading " & Me.Caption
38.
MsgBox prompt:=msg, Title:="Terminate Event"
39.
End Sub
40. Pada Menjalankan Menu, klik Menjalankan Sub UserForm.
Ketika UserForm pertama yang dimuat, makro menggunakan menginisialisasi acara untuk
mengubah properti Caption UserForm untuk "Peristiwa Events Events!" dan properti
BackColor untuk biru gelap.
Ketika Anda klik UserForm, Anda memulai acara Klik . Acara Klik mengubah ukuran
UserForm. Karena Anda menciptakan sebuah prosedur untuk mengubah ukuran acara, Anda
menerima dua kotak pesan setelah Anda mengklik UserForm. Mengubah ukuran acara
terjadi dua kali karena kode di belakang acara Klik perubahan properti lebar dan tinggi milik
UserForm.
Menutup UserForm memulai acara QueryClose . Acara QueryClose menampilkan kotak
pesan yang berisi keterangan bahwa Anda memberikan UserForm dalam kode untuk
menginisialisasi acara. Anda dapat menggunakan acara QueryClose bila Anda ingin
melakukan serangkaian tindakan tertentu jika pengguna menutup UserForm.
Hentikan acara kemudian menghasilkan sebuah kotak pesan yang menyatakan bahwa
keterangan UserForm adalah UserForm1. Hentikan peristiwa terjadi setelah UserForm akan
dihapus dari kehabisan memori dan Caption UserForm kembali ke keadaan semula.
Bagaimana mencegah UserForm ditutup dengan menggunakan tombol tekan Tutup
Ketika Anda menjalankan UserForm, Tutup tombol tekan ditambahkan sudut kanan-atas atas
jendela UserForm. Jika Anda ingin mencegah UserForm dari ditutup dengan menggunakan
Tutup tombol tekan, Anda harus perangkap QueryClose acara.
QueryClose peristiwa terjadi tepat sebelum UserForm diturunkan dari kehabisan memori.
Menggunakan argumen CloseModeQueryClose acara untuk menentukan bagaimana
UserForm ditutup. Nilai vbFormControlMenu untuk argumen CloseMode menunjukkan
bahwa Tutuptombol tekan diklik. Untuk menjaga UserForm aktif, set argumen membatalkan
acara QueryClose untuk benar. Menggunakan acara QueryClose untuk mencegah
UserForm ditutup dengan menggunakan Tutup tombol tekan, ikuti langkah berikut:
1. Buat buku kerja baru di Excel.
2. Pada Alat Menu, titik untukMakro, lalu klik Visual Basic Editor.
3. Pada Masukkan Menu, klikUserForm untuk memasukkan UserForm di buku
kerja Anda.
4. Tambahkan kontrol CommandButton untuk UserForm.
5. klik ganda UserForm untuk menampilkan Jendela kode untuk UserForm.
6. Dalam jendela kode, ketik kode berikut:
7. Private Sub CommandButton1_Click()
8.
9.
Unload Me
10.
11.
End Sub
12.
13.
Private Sub UserForm_QueryClose(Cancel As Integer,
CloseMode As Integer)
14.
15.
IF CloseMode = vbFormControlMenu Then
16.
Cancel = True
17.
Me.Caption = "Click the CommandButton to close Me!"
18.
End If
19.
End Sub
20. Pada Menjalankan Menu, klik Menjalankan Sub UserForm.
UserForm tidak tertutup ketika Anda mengklik Tutup tombol tekan. Anda harus meng-klik
CommandButton kontrol untuk menutup UserForm.
Untuk informasi tambahan, klik nomor artikel berikut untuk melihat artikel di dalam
Pangkalan Pengetahuan Microsoft:
207714
(http://support.microsoft.com/kb/207714/ )
XL2000: Galat run-time menggunakan UserForms koleksi
211527
(http://support.microsoft.com/kb/211527/ )
XL2000: Tidak dapat menyeret UserForm kontrol ke lembar kerja
211868
(http://support.microsoft.com/kb/211868/ )
XL2000: Kesalahan menjalankan makro yang menyisipkan kontrol ke UserForm
213582
(http://support.microsoft.com/kb/213582/ )
XL2000: Masalah ketika Anda menggunakan makro untuk menambahkan kontrol UserForm
213583
(http://support.microsoft.com/kb/213583/ )
XL2000: Tidak dapat menunjukkan UserForms dalam proyek-proyek lain
213736
(http://support.microsoft.com/kb/213736/ )
XL2000: Cara menentukan tombol tekan ditekan bersama dengan tombol tekan gulir dengan
mouse
213744
(http://support.microsoft.com/kb/213744/ )
XL2000: Bagaimana untuk menyembunyikan sementara UserForm
213747
(http://support.microsoft.com/kb/213747/ )
XL2000: Bagaimana untuk beralih antara kustom UserForms dengan tombol tekan perintah
213749
(http://support.microsoft.com/kb/213749/ )
XL2000: bagaimana untuk menggunakan UserForm untuk memasukkan data
213768
(http://support.microsoft.com/kb/213768/ )
XL2000: Bagaimana untuk secara dinamis mengubah ukuran bentuk pengguna
213774
(http://support.microsoft.com/kb/213774/ )
XL2000: Cara membuat layar Startup dengan UserForm
VBA kode
Excel termasuk lima belas kontrol yang berbeda yang dapat Anda gunakan pada UserForms.
Bagian ini berisi berbagai contoh yang menggunakan kontrol ini pemrograman.
Catatan VBA kode yang disertakan dalam artikel ini tidak berisi contoh yang mempengaruhi
semua properti dan Event untuk kontrol. Jika Anda harus, Anda dapat menggunakan jendela
Properties untuk melihat daftar properti yang tersedia untuk kontrol. Untuk melihat daftar
properti, pada Lihat Menu, klik Jendela properti.
Cara menggunakan mode desain untuk mengedit kontrol
Bila Anda menggunakan Editor Visual Basic untuk merancang kotak dialog, Anda
menggunakan modus desain. Dalam mode Desain, Anda dapat mengedit kontrol dan Anda
dapat mengubah properti kontrol pada UserForm dalam jendela properti. Untuk menampilkan
jendela Properties, padaLihat Menu, klik Jendela properti.
Catatan Kontrol tidak menanggapi peristiwa saat Anda berada dalam mode desain. Ketika
Anda menjalankan kotak dialog untuk menampilkan cara bahwa pengguna melihat itu,
program adalah dalam menjalankan mode. Perubahan yang Anda buat pada properti kontrol
dalam jangka mode tidak dipertahankan ketika UserForm diturunkan dari kehabisan memori.
Catatan Kontrol menanggapi peristiwa dalam menjalankan mode.
Bagaimana mengacu kepada kontrol pada UserForm
Bagaimana Anda merujuk ke kontrol secara pemrograman tergantung pada jenis lembar
modul Visual Basic yang mana Anda menjalankan kode. Jika kode berjalan dari modul
umum, sintaks adalah sebagai berikut:
UserFormName.Controlname.Property = Nilai
Misalnya, jika Anda ingin mengatur properti teks kontrol TextBox yang bernama TextBox1
di UserForm yang bernama UserForm1 untuk nilai Bob, gunakan kode berikut:
UserForm1.TextBox1.Text = "Bob"
Jika kode dalam prosedur yang dimulai oleh sebuah peristiwa kontrol atau oleh UserForm,
Anda tidak harus merujuk pada nama UserForm. Sebaliknya, gunakan kode berikut:
TextBox1.Text = "Bob"
Bila Anda memasang kode obyek, kode melekat ke salah satu peristiwa yang objek. Dalam
banyak contoh dalam artikel ini, Anda melampirkan kode pada acara Klik objek
CommandButton .
Kontrol label
Kontrol label terutama digunakan untuk menggambarkan kontrol lain pada UserForm.
Sebuah kontrol Label tak bisa diedit oleh pengguna sementara UserForm menjalankan.
Menggunakan properti Caption untuk mengatur atau kembali teks di sebuah kontrol Label .
Properti lainnya sering digunakan untuk memformat sebuah kontrol Label termasuk properti
Font dan ForeColor properti.
Bagaimana menggunakan sebuah pernyataan dengan memformat sebuah kontrol Label
Untuk menggunakan dengan pernyataan untuk mengubah properti kontrol Label , ikuti
langkah berikut:
1. Memulai Excel, dan kemudian buka buku kerja baru kosong.
2. Pada Alat Menu, titik untukMakro, lalu klik Visual Basic Editor.
3. Pada Masukkan Menu, klikUserForm untuk memasukkan UserForm di buku
kerja Anda.
4. Tambahkan kontrol Label untuk UserForm.
5. Tambahkan kontrol CommandButton untuk UserForm.
6. klik ganda CommandButton kontrol untuk Buka jendela kode untuk
UserForm.
7. Dalam jendela kode, ketik kode berikut untuk Klik CommandButton1 acara:
8. Private Sub CommandButton1_Click()
9.
10.
With Label1
11.
' Set the text of the label.
12.
.Caption = "This is Label Example 1"
13.
' Automatically size the label control.
14.
.AutoSize = True
15.
.WordWrap = False
16.
' Set the font used by the Label control.
17.
.Font.Name = "Times New Roman"
18.
.Font.Size = 14
19.
.Font.Bold = True
20.
21.
22.
23.
' Set the font color to blue.
.ForeColor = RGB(0, 0, 255)
End With
End Sub
24. Pada Menjalankan Menu, klik Menjalankan Sub UserForm.
25. Klik CommandButton.
Teks "Ini adalah Label contoh 1" muncul pada Label control di bold Times New Roman
dengan ukuran fon 14.
Kontrol TextBox
Kontrol TextBox sering digunakan untuk mengumpulkan masukan dari pengguna. Properti
teks berisi entri yang dibuat di kontrol TextBox .
Cara menggunakan kontrol TextBox untuk memvalidasi password
Jika Anda mengatur properti PasswordChar dari kontrol TextBox , menjadi kontrol
"bertopeng-edit". Setiap karakter yang diketik dalam TextBox kontrol digantikan secara
visual dengan karakter yang Anda tentukan. Untuk menggunakan kontrol TextBox untuk
memvalidasi sandi, ikuti langkah berikut:
1. Memulai Excel, dan kemudian buka buku kerja baru kosong.
2. Pada Alat Menu, titik untukMakro, lalu klik Visual Basic Editor.
3. Pada Masukkan Menu, klikUserForm untuk memasukkan UserForm di buku
kerja Anda.
4. Tambahkan kontrol TextBox untuk UserForm.
5. Pada Lihat Menu, klikProperti untuk membuat jendela properti terlihat.
6. Dalam properti PasswordChar dari kontrol TextBox , ketik *.
Catatan Anda mengubah nilai ke asterisk.
7. Tambahkan kontrol CommandButton untuk UserForm.
8. Klik dua kali CommandButton kontrol untuk Buka jendela kode untuk
UserForm.
9. Dalam jendela kode, ketik kode berikut untuk Klik CommandButton1 acara:
10.
11.
12.
13.
Private Sub CommandButton1_Click()
If TextBox1.Text "userform" Then
MsgBox "Password is Incorrect. Please reenter."
14.
15.
16.
17.
18.
19.
20.
21.
22.
TextBox1.Text = ""
TextBox1.SetFocus
Else
MsgBox "Welcome!"
Unload Me
End If
End Sub
23. Pada Menjalankan Menu, klik Menjalankan Sub UserForm.
24. Ketik sandi UserForm di kontrol TextBox .
25. Klik CommandButtonkontrol.
Untuk contoh ini, sandi adalah "userform". Jika Anda mengetik password salah, Anda
menerima sebuah kotak pesan yang menyatakan bahwa sandi betul, kontrol TextBox adalah
dibersihkan, dan kemudian Anda dapat ketik-ulang sandi. Kapan Anda mengetik sandi yang
benar, Anda menerima pesan pembuka dan UserForm adalah ditutup.
Untuk informasi tambahan, klik nomor artikel berikut ini untuk melihat artikel di Microsoft
Knowledge Base:
213555
(http://support.microsoft.com/kb/213555/ )
XL2000: Tidak ada Data validasi properti untuk UserForm textbox
Kontrol CommandButton
Anda dapat menggunakan control CommandButton ke atas untuk memulai prosedur VBA.
Prosedur VBA ini biasanya melekat pada acara Klik Control CommandButton . Untuk
menggunakan kontrol CommandButton yang menjalankan prosedur ketika acara Klik
terjadi, ikuti langkah berikut:
1. Memulai Excel, dan kemudian buka buku kerja baru kosong.
2. Pada Alat Menu, titik untukMakro, lalu klik Visual Basic Editor.
3. Pada Masukkan Menu, klikUserForm untuk memasukkan UserForm di buku
kerja Anda.
4. Tambahkan kontrol CommandButton untuk UserForm.
5. Klik dua kali CommandButton kontrol untuk Menampilkan jendela kode
untuk UserForm.
6. Dalam jendela kode, ketik kode berikut:
7. Private Sub CommandButton1_Click()
8.
9.
red = Int(Rnd * 255)
10.
green = Int(Rnd * 255)
11.
12.
13.
blue = Int(Rnd * 255)
CommandButton1.BackColor = RGB(red, green, blue)
End Sub
14. Pada Menjalankan Menu, klik Menjalankan Sub UserForm.
Warna latar belakang CommandButton1kontrol perubahan setiap waktu yang Anda klik.
Untuk informasi tambahan tentang CommandButton kontrol, klik nomor artikel berikut ini
untuk melihat artikel pada Basis Pengetahuan Microsoft:
213572
(http://support.microsoft.com/kb/213572/ )
XL2000: Mengklik tombol Batal tidak dapat mengabaikan UserForm
213743
(http://support.microsoft.com/kb/213743/ )
XL2000: Cara menetapkan tombol perintah default di UserForm
ListBox kontrol
Tujuan dari ListBox DNS adalah untuk menyajikan pengguna dengan daftar item untuk
memilih dari. Anda dapat menyimpan daftar item untuk sebuah ListBox DNS pada lembar
kerja Excel. Untuk mengisi sebuah ListBox DNS dengan kisaran sel pada lembar kerja,
menggunakan properti RowSource . Ketika Anda menggunakan properti MultiSelect , Anda
dapat mengatur sebuah ListBox DNS untuk menerima beberapa pilihan.
Cara mendapatkan item yang saat ini dipilih dari ListBox DNS
Menggunakan properti nilai dari sebuah ListBox DNS untuk mengembalikan item yang saat
ini dipilih. Untuk kembali item yang dipilih saat ini dalam satu pilih ListBox DNS, ikuti
langkah berikut:
1. Memulai Excel, dan kemudian buka buku kerja baru kosong.
2. Dalam sel A1:A5 pada Sheet1, ketik nilai-nilai yang ingin Anda Gunakan untuk
mengisi ListBox DNS.
3. Pada Alat Menu, titik untukMakro, lalu klik Visual Basic Editor.
4. Pada Masukkan Menu, klikUserForm untuk memasukkan UserForm di buku
kerja Anda.
5. Menambahkan sebuah ListBox DNS untuk UserForm.
6. Klik dua kali ListBox kontrol untuk Menampilkan jendela kode untuk ListBox
DNS.
7. Dalam jendela kode, ketik kode berikut untuk Klik ListBox1 acara:
8. Private Sub ListBox1_Click()
9.
10.
11.
MsgBox ListBox1.Value
End Sub
12. Pada Menjalankan Menu, klik Menjalankan Sub UserForm.
Ketika Anda mengklik item dalam daftar, kotak pesan muncul dengan item yang saat ini
dipilih.
Cara mendapatkan item yang dipilih dalam beberapa pilih ListBox DNS
Untuk menentukan item yang dipilih dalam beberapa pilih ListBox DNS, Anda harus loop
melalui semua item dalam daftar, dan kemudian permintaan properti dipilih . Kembali unsur
terpilih saat ini di beberapa Pilih ListBox DNS, ikuti langkah berikut:
1. Memulai Excel, dan kemudian buka buku kerja baru kosong.
2. Dalam sel A1:A5 pada Sheet1, ketik nilai-nilai yang ingin Anda Gunakan untuk
mengisi ListBox DNS.
3. Pada Alat Menu, titik untukMakro, lalu klik Visual Basic Editor.
4. Pada Masukkan Menu, klikUserForm untuk memasukkan UserForm di buku
kerja Anda.
5. Menambahkan sebuah ListBox DNS untuk UserForm.
6. Pada Lihat Menu, klikProperti untuk melihat jendela properti.
7. Ketik nilai-nilai yang ditunjukkan untuk properti kontrol ListBox berikut:
8.
9.
10.
Property
Value
--------------------------------MultiSelect
1 - frmMultiSelectMulti
RowSource
Sheet1!A1:A8
11. Tambahkan kontrol CommandButton untuk UserForm.
12. Klik dua kali CommandButton kontrol untuk Menampilkan jendela kode
untuk UserForm.
13. Dalam jendela kode, ketik kode berikut untuk Klik CommandButton1 acara:
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
Sub CommandButton1_Click ()
' Loop through the items in the ListBox.
For x = 0 to ListBox1.ListCount - 1
' If the item is selected...
If ListBox1.Selected(x) = True Then
' display the Selected item.
MsgBox ListBox1.List(x)
24.
25.
26.
End If
Next x
End Sub
27. Pada Menjalankan Menu, klik Menjalankan Sub UserForm.
28. Pilih satu atau beberapa item dalam daftar.
29. Klik CommandButton1.
Setelah Anda mengklik CommandButton1, setiap item yang Anda memilih dalam ListBox
kontrol muncul pada kotak pesan terpisah. Setelah semua yang dipilih item yang muncul di
kotak pesan, UserForm otomatis ditutup.
Cara menggunakan properti RowSource untuk mengisi sebuah ListBox DNS dengan sel
pada lembar kerja
Untuk menggunakan properti RowSource untuk mengisi sebuah ListBox DNS dari kisaran
sel pada lembar kerja, ikuti langkah berikut:
1. Memulai Excel, dan kemudian buka buku kerja baru kosong.
2. Dalam sel A1:A5 pada Sheet1, ketik nilai-nilai yang ingin Anda Gunakan untuk
mengisi ListBox DNS.
3. Pada Alat Menu, titik untukMakro, lalu klik Visual Basic Editor.
4. Pada Masukkan Menu, klikUserForm untuk memasukkan UserForm di buku
kerja Anda.
5. Menambahkan sebuah ListBox DNS untuk UserForm.
6. Tambahkan kontrol CommandButton untuk UserForm.
7. Klik dua kali CommandButton kontrol untuk Menampilkan jendela kode
untuk UserForm.
8. Dalam jendela kode, ketik kode berikut untuk Klik CommandButton1 acara:
9. Private Sub CommandButton1_Click()
10.
ListBox1.RowSource = "=Sheet1!A1:A5"
End Sub
11. Pada Menjalankan Menu, klik Menjalankan Sub UserForm.
CatatanListBox1 tidak berisi nilai-nilai apapun.
12. Klik CommandButton1.
ListBox1 diisi dengan nilai-nilai dalam sel A1:A5 pada Sheet1.
Cara mengisi sebuah ListBox DNS dengan nilai-nilai dalam array
Contoh ini menunjukkan Anda bagaimana untuk mengisi sebuah ListBox DNS dengan
variabel array. Anda harus menetapkan nilai-nilai dari array ke ListBox kontrol satu item
pada suatu waktu. Biasanya, proses ini memerlukan bahwa Anda menggunakan struktur
perulangan, seperti untuk...Berikutnya loop. Untuk mengisi sebuah ListBox DNS dengan
variabel array, ikuti langkah berikut:
1. Memulai Excel, dan kemudian buka buku kerja baru kosong.
2. Pada Alat Menu, titik untukMakro, lalu klik Visual Basic Editor.
3. Pada Masukkan Menu, klikUserForm untuk memasukkan UserForm di buku
kerja Anda.
4. Menambahkan sebuah ListBox DNS untuk UserForm.
5. Pada Masukkan Menu, klikModul untuk menyisipkan lembar modul.
6. Dalam jendela kode, ketik kode berikut:
7. Sub PopulateListBox()
8.
9.
Dim MyArray As Variant
10.
Dim Ctr As Integer
11.
MyArray = Array("Apples", "Oranges", "Peaches",
"Bananas", "Pineapples")
12.
13.
For Ctr = LBound(MyArray) To UBound(MyArray)
14.
UserForm1.ListBox1.AddItem MyArray(Ctr)
15.
Next
16.
17.
UserForm1.Show
18.
End Sub
19. Pada Alat Menu, klikMacro, klik PopulateListBox, lalu klikMenjalankan.
Prosedur PopulateListBox membangun sebuah array yang sederhana, dan kemudian
menambahkan item dalam array ke kontrol ListBox dengan menggunakan metode AddItem .
Kemudian, UserForm muncul.
Cara menggunakan horizontal kisaran sel pada lembar kerja untuk mengisi sebuah
ListBox DNS
Jika Anda mengatur properti RowSource dari sebuah ListBox DNS ke horisontal kisaran sel,
hanya nilai pertama muncul dalam ListBox DNS.
Untuk mengisi sebuah ListBox DNS dari kisaran horisontal sel dengan menggunakan metode
AddItem , ikuti langkah berikut:
1. Memulai Excel, dan kemudian buka buku kerja baru kosong.
2. Dalam sel A1:E1 pada Sheet1, ketik nilai-nilai yang ingin Anda Gunakan untuk
mengisi ListBox DNS.
3. Pada Alat Menu, titik untukMakro, lalu klik Visual Basic Editor.
4. Pada Masukkan Menu, klikUserForm untuk memasukkan UserForm di buku
kerja Anda.
5. Menambahkan sebuah ListBox DNS untuk UserForm.
6. Pada Masukkan Menu, klikModul untuk menyisipkan lembar modul.
7. Dalam jendela kode, ketik kode berikut:
8. Sub PopulateListWithHorizontalRange()
9.
10.
For Each x In Sheet1.Range("A1:E1")
11.
UserForm1.ListBox1.AddItem x.Value
12.
Next
13.
14.
UserForm1.Show
15.
End Sub
16. Pada Alat Menu, klikMacro, klikPopulateListWithHorizontalRange, lalu
klikMenjalankan.
Makro prosedur loop melalui sel-sel A1:E5 pada Sheet1, menambahkan nilai-nilai untuk
ListBox1 satu pada satu waktu.
CatatanListBox1 tidak terikat untuk A1:E5 sel pada Sheet1.
Bagaimana mengembalikan beberapa nilai dari sebuah ListBox DNS yang terikat
untuk beberapa kolom data
Anda dapat memformat ListBox kontrol untuk menampilkan lebih dari satu kolom data. Ini
berarti bahwa ListBox DNS menampilkan lebih dari satu unsur pada setiap baris dari daftar.
Untuk kembali beberapa nilai dari item yang dipilih dalam daftar, ikuti langkah berikut:
1. Memulai Excel, dan kemudian buka buku kerja baru kosong.
2. Tipe data berikut dalam sel-sel yang ditunjukkan pada Sheet1:
Perkecil tabel iniPerbesar tabel ini
A1:
tahun
A2: 1996
A3: 1996
A4: 1997
A5: 1997
B1: wilayah C1: penjualan
B2: Utara
B3: Selatan
B4: Utara
B5: Selatan
C2: 140
C3: 210
C4: 190
C5: 195
3. Pada Alat Menu, titik untukMakro, lalu klik Visual Basic Editor.
4. Pada Masukkan Menu, klikUserForm untuk memasukkan UserForm di buku
kerja Anda.
5. Tambahkan kontrol Label untuk UserForm.
6. Menambahkan sebuah ListBox DNS untuk UserForm.
7. Klik kanan ListBox, lalu klikProperti.
8. Ketik atau pilih nilai-nilai yang ditunjukkan untuk Properti berikut ListBox
DNS seperti yang tercantum dalam tabel berikut:
9.
10.
11.
12.
13.
Property
Value
---------------------------BoundColumn
1
ColumnCount
3
ColumnHeads
True
RowSource
Sheet1!A2:A5
14. Klik dua kali ListBox kontrol untuk Menampilkan jendela kode untuk ListBox
DNS.
15. Dalam jendela kode, ketik kode berikut:
16.
17.
18.
19.
20.
21.
22.
23.
24.
Private Sub ListBox1_Change()
Dim SourceData As Range
Dim Val1 As String, Val2 As String, Val3 As String
Set SourceRange = Range(ListBox1.RowSource)
Val1 = ListBox1.Value
Val2 = SourceRange.Offset(ListBox1.ListIndex,
1).Resize(1, 1).Value
25.
Val3 = SourceRange.Offset(ListBox1.ListIndex,
2).Resize(1, 1).Value
26.
27.
Label1.Caption = Val1 & " " & Val2 & " " & Val3
28.
End Sub
29. Pada Menjalankan Menu, klik Menjalankan Sub UserForm.
Ketika Anda klik entri dalam ListBox DNS, label perubahan untuk menampilkan semua tiga
unsur di Catatan bahwa.
Cara menghapus semua item dari sebuah ListBox DNS yang terikat ke lembar kerja
Untuk menghapus semua item dari sebuah ListBox DNS yang terikat ke lembar kerja, jelas
nilai yang disimpan di RowSource properti. Untuk menghapus item dari sebuah ListBox
DNS yang terikat ke lembar kerja, ikuti langkah berikut:
1. Memulai Excel, dan kemudian buka buku kerja baru kosong.
2. Dalam sel A1:A5 pada Sheet1, ketik nilai-nilai yang ingin Anda Gunakan untuk
mengisi ListBox DNS.
3. Pada Alat Menu, titik untukMakro, lalu klik Visual Basic Editor.
4. Pada Masukkan Menu, klikUserForm untuk memasukkan UserForm di buku
kerja Anda.
5. Menambahkan sebuah ListBox DNS untuk UserForm.
6. Klik kanan ListBox kontrol, dan kemudian Klik Properti.
7. Dalam properti RowSource , ketik Sheet1!A1:A5.
8. Tambahkan kontrol CommandButton untuk UserForm.
9. Klik dua kali CommandButton kontrol untuk Menampilkan jendela kode
untuk control CommandButton ke atas .
10. Dalam jendela kode, ketik kode berikut untuk Klik CommandButton1 acara:
11.
12.
13.
14.
Private Sub CommandButton1_Click()
ListBox1.RowSource = ""
End Sub
15. Pada Menjalankan Menu, klik Menjalankan Sub UserForm.
ListBoxDNS yang Anda tambahkan ke UserForm diisi dengan nilai-nilai yang
Anda masukkan pada Sheet1.
16. Klik CommandButton1.
Semua item yang dihapus dari ListBox1.
Cara menghapus semua item dari sebuah ListBox DNS yang tidak terikat ke lembar
kerja
Ada tidak ada satu VBA perintah yang menghapus semua item dari sebuah ListBox DNS jika
daftar tidak terikat pada lembar kerja. Untuk menghapus semua item dari sebuah ListBox
DNS yang dihuni dari sebuah array Visual Basic, ikuti langkah-langkah:
1. Memulai Excel, dan kemudian buka buku kerja baru kosong.
2. Pada Alat Menu, titik untukMakro, lalu klik Visual Basic Editor.
3. Pada Masukkan Menu, klikUserForm untuk memasukkan UserForm di buku
kerja Anda.
4. Menambahkan sebuah ListBox DNS untuk UserForm.
5. Pada Masukkan Menu, klikModul untuk menyisipkan lembar modul.
6. Dalam jendela kode, ketik kode berikut:
7. Sub PopulateListBox()
8.
9.
Dim MyArray As Variant
10.
Dim Ctr As Integer
11.
MyArray = Array("Apples", "Oranges", "Peaches",
"Bananas", "Pineapples")
12.
13.
For Ctr = LBound(MyArray) To UBound(MyArray)
14.
UserForm1.ListBox1.AddItem MyArray(Ctr)
15.
Next
16.
17.
UserForm1.Show
18.
End Sub
19. Tambahkan kontrol CommandButton untuk UserForm.
20. Klik dua kali CommandButton kontrol untuk Menampilkan jendela kode
untuk control CommandButton ke atas .
21. Dalam jendela kode, ketik kode berikut untuk Klik CommandButton1 acara:
22.
23.
24.
25.
26.
27.
Private Sub CommandButton1_Click()
For i = 1 To ListBox1.ListCount
ListBox1.RemoveItem 0
Next I
End Sub
28. Pada Alat Menu, klikMacro, klik PopulateListBox, lalu klikMenjalankan.
ListBox DNS dihuni, dan kemudian muncul UserForm.
29. Klik CommandButton1.
Semua item yang dihapus dari ListBox1.
Untuk informasi tambahan tentang ListBox DNS, klik artikel berikut nomor untuk melihat
artikel di dalam Basis Pengetahuan Microsoft:
161598
(http://support.microsoft.com/kb/161598/ )
OFF: Bagaimana menambahkan data ke ComboBox atau ListBox di Excel atau Word
211446
(http://support.microsoft.com/kb/211446/ )
XL2000: TextColumn properti menampilkan hanya kolom pertama
211896
(http://support.microsoft.com/kb/211896/ )
XL2000: Cara untuk mensimulasikan kombinasi kontrol Edit daftar untuk UserForms
211899
(http://support.microsoft.com/kb/211899/ )
XL2000: Masalah menetapkan judul kolom di ListBox DNS
213721
(http://support.microsoft.com/kb/213721/ )
XL2000: Cara menghapus semua item dari ListBox atau ComboBox
213722
(http://support.microsoft.com/kb/213722/ )
XL2000: Cara menggunakan properti TextColumn
213723
(http://support.microsoft.com/kb/213723/ )
XL2000: Bagaimana untuk kembali nilai-nilai dari kotak yang menampilkan beberapa kolom
213746
(http://support.microsoft.com/kb/213746/ )
XL2000: bagaimana untuk mengisi kotak daftar kontrol dengan beberapa rentang
213748
(http://support.microsoft.com/kb/213748/ )
XL2000: bagaimana untuk mengisi kotak daftar satu berdasarkan lain kotak daftar
213752
(http://support.microsoft.com/kb/213752/ )
XL2000: Menggunakan metode AddItem yang menyebabkan galat ketika RowSource adalah
data yang terikat
213756
(http://support.microsoft.com/kb/213756/ )
XL2000: Menggunakan metode RemoveItem dengan ListBox atau ComboBox kontrol
213759
(http://support.microsoft.com/kb/213759/ )
XL2000: bagaimana untuk menentukan item yang dipilih dalam kotak daftar
Kontrol ComboBox
Anda dapat menggunakan kontrol ComboBox sebagai kotak drop-down daftar, atau sebagai
sebuah kotak kombo yang mana Anda dapat Pilih nilai dalam daftar atau ketik nilai baru.
Properti gaya menentukan jika kontrol ComboBox bertindak sebagai daftar drop-down box
atau kotak kombo.
Catatan Semua contoh di bagian sebelumnya untuk ListBox DNS juga dapat diterapkan ke
kontrol ComboBox , kecuali untuk "cara mendapatkan item yang dipilih dalam contoh
beberapa pilih ListBox DNS".
Bagaimana menambahkan item baru ke daftar jika kontrol ComboBox tidak terikat ke
lembar kerja
Ketika Anda mengetik nilai yang sudah tidak dalam daftar di ComboBox kontrol, Anda
mungkin ingin menambahkan nilai baru ke daftar. Untuk menambahkan nilai baru yang
diketik di ComboBox kontrol jika kontrol ComboBox tidak terikat pada lembar kerja, ikuti
langkah berikut:
1. Memulai Excel, dan kemudian buka buku kerja baru kosong.
2. Pada Alat Menu, titik untukMakro, lalu klik Visual Basic Editor.
3. Pada Masukkan Menu, klikUserForm untuk memasukkan UserForm di buku
kerja Anda.
4. Tambahkan kontrol ComboBox untuk UserForm.
5. Pada Masukkan Menu, klikModul untuk menyisipkan lembar modul.
6. Dalam jendela kode, ketik kode berikut:
7. Sub PopulateComboBox()
8.
9.
Dim MyArray As Variant
10.
Dim Ctr As Integer
11.
MyArray = Array("Apples", "Oranges", "Peaches",
"Bananas", "Pineapples")
12.
13.
For Ctr = LBound(MyArray) To Ubound(MyArray)
14.
UserForm1.ComboBox1.AddItem MyArray(Ctr)
15.
Next
16.
17.
UserForm1.Show
18.
End Sub
19. Tambahkan kontrol CommandButton untuk UserForm.
20. Klik dua kali CommandButton kontrol untuk Menampilkan jendela kode
untuk control CommandButton ke atas .
21. Dalam jendela kode, ketik kode berikut untuk Klik CommandButton1 acara:
22.
23.
24.
25.
26.
27.
28.
29.
30.
Private Sub CommandButton1_Click()
Dim listvar As Variant
listvar = ComboBox1.List
On Error Resume Next
' If the item is not found in the list...
If IsError(WorksheetFunction.Match(ComboBox1.Value,
listvar, 0)) Then
31.
' add the new value to the list.
32.
ComboBox1.AddItem ComboBox1.Value
33.
End If
34.
End Sub
35. Pada Alat Menu, klikMacro, klik PopulateListBox, lalu klikMenjalankan.
Kontrol ComboBox dihuni, dan kemudian muncul UserForm.
36. Mengendalikan ComboBox , ketik Mangga (atau salah satu nilai yang sudah
tidak dalam daftar).
37. Klik CommandButton1.
Nilai baru yang diketik sekarang muncul pada akhir daftar.
Bagaimana menambahkan item baru ke daftar jika kontrol ComboBox terikat ke
lembar kerja
Ketika pengguna jenis nilai yang sudah tidak dalam daftar di ComboBox kontrol, Anda
mungkin ingin menambahkan nilai baru ke daftar. Untuk menambahkan nilai baru yang
diketik di ComboBox kontrol ke dalam daftar, ikuti langkah berikut:
1. Memulai Excel, dan kemudian buka buku kerja baru kosong.
2. Dalam sel A1:A5 pada Sheet1, ketik nilai-nilai yang ingin Anda Gunakan untuk
mengisi ComboBox kontrol.
3. Pilih sel A1:A5 pada Sheet1.
4. Pada Masukkan Menu, titik untukNama, lalu klik Define.
DalamNama-nama dalam buku kerja kotak, jenis ListRange , kemudian klik
Oke. Hal ini menciptakan nama ditetapkan ListRange. Anda dapat
menggunakan nama ditetapkan ListRange untuk mengikat properti
RowSource dari kontrol ComboBox lembar kerja.
5. Pada Alat Menu, titik untukMakro, lalu klik Visual Basic Editor.
6. Pada Masukkan Menu, klikUserForm untuk memasukkan UserForm di buku
kerja Anda.
7. Tambahkan kontrol ComboBox untuk UserForm.
8. Dalam Properti untuk ComboBox1, ketik Sheet1!ListRange
sebagaiRowSource properti.
9. Tambahkan kontrol CommandButton untuk UserForm.
10. Klik dua kali CommandButton kontrol untuk Menampilkan jendela kode
untuk control CommandButton ke atas .
11. Dalam jendela kode, ketik kode berikut untuk Klik CommandButton1 acara:
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
Private Sub CommandButton1_Click()
Dim SourceData As Range
Dim found As Object
Set SourceData = Range("ListRange")
Set found = Nothing
' Try to find the value on the worksheet.
Set found = SourceData.Find(ComboBox1.Value)
22.
23.
24.
25.
' If the item is not found in the list...
If found Is Nothing Then
' redefine ListRange.
SourceData.Resize(SourceData.Rows.Count + 1,
1).Name = "ListRange"
26.
' Add the new item to the end of the list on the
worksheet.
27.
SourceData.Offset(SourceData.Rows.Count,
0).Resize(1, 1).Value _
28.
= ComboBox1.Value
29.
' Reset the list displayed in the ComboBox.
30.
ComboBox1.RowSource =
Range("listrange").Address(external:=True)
31.
End If
32.
End Sub
33. Pada Menjalankan Menu, klik Menjalankan Sub UserForm.
UserForm akan muncul pada Sheet1.
34. Mengendalikan ComboBox , ketik nilai yang tidak sudah di daftar.
35. Klik CommandButton1.
Item baru yang diketik di ComboBox kontrol ditambahkan ke daftar, dan daftar yang terikat
kontrol ComboBox diperluas untuk mencakup sel A1:A6.
Bagaimana menampilkan daftar kontrol ComboBox ketika UserForm muncul
Kadang-kadang, ini mungkin berguna untuk menampilkan daftar kontrol ComboBox ketika
UserForm pertama muncul. Contoh berikut menggunakan Aktifkan peristiwa UserForm.
Untuk menampilkan daftar kontrol ComboBox , ikuti langkah berikut:
1. Memulai Excel, dan kemudian buka buku kerja baru kosong.
2. Dalam sel A1:A5 pada Sheet1, ketik nilai-nilai yang ingin Anda Gunakan untuk
mengisi ComboBox kontrol.
3. Pada Alat Menu, titik untukMakro, lalu klik Visual Basic Editor.
4. Pada Masukkan Menu, klikUserForm untuk memasukkan UserForm di buku
kerja Anda.
5. Tambahkan kontrol ComboBox untuk UserForm.
6. Dalam Properti untuk ComboBox1, ketik Sheet1!A1:A5 sebagaiRowSource
properti.
7. Klik dua kali UserForm untuk menampilkan Jendela kode untuk UserForm.
8. Dalam jendela kode, ketik kode berikut untuk Klik CommandButton acara:
9. Private Sub UserForm_Activate()
10.
11.
ComboBox1.DropDown
12.
End Sub
13. Pada Menjalankan Menu, klik Menjalankan Sub UserForm.
UserForm muncul di Sheet1, dan Anda dapat melihat daftar untuk ComboBox1.
Bagaimana menampilkan daftar satu kontrol ComboBox ketika Anda membuat pilihan
dalam kontrol ComboBox lainnya
Untuk secara otomatis menampilkan daftar satu kontrol ComboBox ketika pilihan yang
dibuat di kontrol ComboBox lainnya, ikuti langkah berikut:
1. Memulai Excel, dan kemudian buka buku kerja baru kosong.
2. Dalam sel A1:A10 pada Sheet1, ketik nilai-nilai yang ingin Anda Gunakan
untuk mengisi ComboBox kontrol.
3. Pada Alat Menu, titik untukMakro, lalu klik Visual Basic Editor.
4. Pada Masukkan Menu, klikModul.
5. Dalam jendela kode untuk modul, ketik kode berikut:
6. Sub DropDown_ComboBox()
7.
8.
UserForm1.ComboBox2.DropDown
9.
End Sub
10. Pada Masukkan Menu, klikUserForm untuk memasukkan UserForm di buku
kerja Anda.
11. Tambahkan kontrol ComboBox untuk UserForm.
12. Dalam Properti untuk ComboBox1, ketik Sheet1!A1:A5 sebagaiRowSource
properti.
13. Klik dua kali ComboBox Control untuk membuka jendela kode untuk kontrol
ComboBox .
14. Dalam jendela kode untuk kontrol ComboBox , ketik kode berikut untuk Klik
ComboBox acara:
15.
16.
17.
18.
Private Sub ComboBox1_Click()
Application.OnTime Now, "DropDown_ComboBox"
End Sub
19. Tambahkan kontrol ComboBox kedua untuk UserForm.
20. Dalam Properti untuk ComboBox2, ketik Sheet1!A6:A10 sebagaiRowSource
properti.
21. Pada Menjalankan Menu, klik Menjalankan Sub UserForm.
Ketika Anda mengklik item dalam daftar ComboBox1 , daftar untuk ComboBox2 secara
otomatis muncul.
Untuk informasi tambahan tentang kontrol ComboBox, klik nomor artikel berikut ini untuk
melihat artikel di dalam Basis Pengetahuan Microsoft:
161598
(http://support.microsoft.com/kb/161598/ )
OFF: Bagaimana menambahkan data ke ComboBox atau ListBox di Excel atau Word
211446
(http://support.microsoft.com/kb/211446/ )
XL2000: TextColumn properti menampilkan hanya kolom pertama
211899
(http://support.microsoft.com/kb/211899/ )
XL2000: Masalah menetapkan judul kolom di ListBox DNS
213717
(http://support.microsoft.com/kb/213717/ )
XL2000: Galat Run-time menggunakan metode DropDown dengan ComboBox
213718
(http://support.microsoft.com/kb/213718/ )
XL2000: Bagaimana untuk menampilkan daftar ComboBox ketika UserForm ditampilkan
213721
(http://support.microsoft.com/kb/213721/ )
XL2000: Cara menghapus semua item dari ListBox atau ComboBox
213722
(http://support.microsoft.com/kb/213722/ )
XL2000: Cara menggunakan properti TextColumn
213752
(http://support.microsoft.com/kb/213752/ )
XL2000: Menggunakan metode AddItem yang menyebabkan galat ketika data RowSource
adalah terikat
213756
(http://support.microsoft.com/kb/213756/ )
XL2000: Menggunakan metode RemoveItem dengan ListBox atau ComboBox kontrol
Kontrol frame
Gunakan kontrol Frame untuk kelompok logis terkait item di UserForm. Kontrol bingkai
sering digunakan untuk kelompok kontrol OptionButton .
Cara loop melalui semua kontrol pada kontrol Frame
Untuk menggunakan untuk masing-masing...Berikutnya loop untuk mengakses semua
kontrol dalam kontrol Frame , ikuti langkah berikut:
1. Memulai Excel, dan kemudian buka buku kerja baru kosong.
2. Pada Alat Menu, titik untukMakro, lalu klik Visual Basic Editor.
3. Pada Masukkan Menu, klikUserForm untuk memasukkan UserForm di buku
kerja Anda.
4. Tambahkan kontrol Frame untuk UserForm.
5. Menambahkan kontrol OptionButton kontrol Frame .
Ulangi langkah ini untuk menambahkan dua lebih OptionButton kontrol
mengendalikan Frame .
6. Klik dua kali Bingkai Control untuk membuka Jendela kode untuk kontrol
Frame .
7. Dalam jendela kode, ketik kode berikut untuk Klik Frame acara:
8. Private
9.
10.
11.
12.
13.
14.
15.
End Sub
Sub Frame1_Click()
Dim Ctrl As Control
For Each Ctrl In Frame1.Controls
Ctrl.Enabled = Not Ctrl.Enabled
Next
16. Pada Menjalankan Menu, klik Menjalankan Sub UserForm.
17. Di UserForm, klik Bingkaikontrol.
Pertama kali Anda meng-klik kontrol Frame , semua kontrol dalam kontrol Frame tidak
tersedia. Jika Anda mengklik Bingkaikontrol lagi, kontrol tersedia lagi.
Kontrol OptionButton
Anda dapat menggunakan kelompok kontrol OptionButton untuk membuat satu pilihan
antara sekelompok pilihan. Kamu bisa menggunakan salah satu teknik berikut untuk grup
OptionButton kontrol:
Kontrol frame
GroupName properti
CatatanPada nilai, nilai Ya dan nilai sebenarnya menunjukkan bahwa OptionButton yang
dipilih. Nilai Off , tidak ada nilai dan nilai False menunjukkan bahwa OptionButton tidak
dipilih.
Cara menentukan OptionButton kontrol yang dipilih ketika kontrol OptionButton pada
kontrol Frame
Ketika Anda mengelompokkan OptionButtons kontrol dengan menggunakan kontrol
bingkai , Anda dapat menentukan kontrol OptionButton yang dipilih oleh perulangan
melalui semua kontrol dalam kontrol Frame dan memeriksa properti nilai dari setiap kontrol.
Untuk menentukan OptionButton kontrol yang dipilih, ikuti langkah berikut:
1. Memulai Excel, dan kemudian buka buku kerja baru kosong.
2. Pada Alat Menu, titik untukMakro, lalu klik Visual Basic Editor.
3. Pada Masukkan Menu, klikUserForm untuk memasukkan UserForm di buku
kerja Anda.
4. Tambahkan kontrol Frame untuk UserForm.
5. Menambahkan kontrol OptionButton kontrol Frame .
Ulangi langkah ini untuk menambahkan dua lebih OptionButton kontrol
mengendalikan Frame .
6. Tambahkan control CommandButton ke atas UserForm luar kontrol Frame .
7. Klik dua kali CommandButton kontrol untuk Menampilkan jendela kode
untuk UserForm.
8. Dalam jendela kode, ketik kode berikut untuk Klik CommandButton1 acara:
9. Private Sub CommandButton1_Click()
10.
11.
For Each x In Frame1.Controls
12.
If x.Value = True Then
13.
MsgBox x.Caption
14.
End If
15.
Next
16.
End Sub
17. Pada Menjalankan Menu, klik Menjalankan Sub UserForm.
18. Dalam UserForm, klik satu OptionButton kontrol, dan kemudian
klikCommandButton1.
Akan muncul kotak pesan yang berisi keterangan dari saat ini dipilih OptionButton kontrol.
Cara menentukan OptionButton kontrol yang dipilih
Tujuan dari contoh berikut adalah untuk menentukan OptionButton kontrol yang dipilih
dalam Group1. Untuk membuat UserForm yang memiliki dua kelompok kontrol
OptionButton , ikuti langkah berikut:
1. Memulai Excel, dan kemudian buka buku kerja baru kosong.
2. Pada Alat Menu, titik untukMakro, lalu klik Visual Basic Editor.
3. Pada Masukkan Menu, klikUserForm untuk memasukkan UserForm di buku
kerja Anda.
4. Tambahkan kontrol Frame untuk UserForm.
5. Tambahkan kontrol OptionButton dalam kontrol Frame .
Ulangi langkah ini untuk menambahkan dua lebih OptionButton kontrol
mengendalikan Frame .
6. Untuk setiap OptionButton kontrol, ketik Group1 di GroupName properti.
7. Ulangi langkah 4 dan 5 untuk membuat kedua kontrol Frame yang berisi tiga
OptionButton kontrol.
8. Untuk setiap OptionButton kontrol di kontrol Frame kedua, ketik Group2 di
GroupName properti.
9. Tambahkan control CommandButton ke atas UserForm luar kontrol Frame .
10. Klik dua kali CommandButton kontrol untuk Menampilkan jendela kode
untuk UserForm.
11. Dalam jendela kode, ketik kode berikut untuk Klik CommandButton1 acara:
12.
13.
14.
15.
16.
17.
18.
Private Sub CommandButton1_Click()
Dim x As Control
control.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
' Loop through ALL the controls on the UserForm.
For Each x In Me.Controls
' Check to see if "Option" is in the Name of each
If InStr(x.Name, "Option") Then
' Check Group name.
If x.GroupName = "Group1" Then
' Check the status of the OptionButton.
If x.Value = True Then
MsgBox x.Caption
Exit For
End If
End If
End If
Next
End Sub
31. Pada Menjalankan Menu, klik Menjalankan Sub UserForm.
32. Di UserForm, klik satu OptionButton kontrol di Group1, dan kemudian
klikCommandButton1.
Muncul kotak pesan yang berisi keterangan OptionButton kontrol yang saat ini dipilih.
Untuk informasi tambahan tentang OptionButton kontrol, klik nomor artikel berikut ini untuk
melihat artikel pada Basis Pengetahuan Microsoft:
213724
(http://support.microsoft.com/kb/213724/ )
XL2000: Masalah menggunakan properti TripleState untuk tombol pilihan
Kotak centang kontrol
Anda dapat menggunakan kotak centang kontrol untuk menunjukkan nilai true atau false.
Sebuah kotak centang kontrol yang muncul dengan tanda centang di dalamnya menunjukkan
nilai Benar. Kotak centang yang muncul dengan tanda centang tidak menunjukkan nilai
salah. Jika nilai properti TripleStatebenar, kotak centang kontrol juga dapat memiliki nilai
Null. Sebuah kotak centang kontrol yang memiliki nilai Null tampaknya tidak tersedia.
CatatanPada nilai, nilai Ya dan nilai sebenarnya menunjukkan bahwa kontrol kotak
centang dipilih. Nilai Off , tidak ada nilai dan nilai False menunjukkan bahwa kotak
centang kontrol dibersihkan.
Bagaimana memeriksa nilai kotak centang kontrol
Menggunakan nilai properti untuk mengembalikan nilai sekarang dari kotak centang
kontrol, ikuti langkah berikut:
1. Memulai Excel, dan kemudian buka buku kerja baru kosong.
2. Pada Alat Menu, titik untukMakro, lalu klik Visual Basic Editor.
3. Pada Masukkan Menu, klikUserForm untuk memasukkan UserForm di buku
kerja Anda.
4. Tambahkan kotak centang kontrol untuk UserForm.
5. Dalam daftar properti untuk CheckBox1, pilih Benar sebagai properti
TripleState .
6. Klik dua kali Kotak centang kontrol untuk Menampilkan jendela kode untuk
kotak centang kontrol.
7. Dalam jendela kode, ketik kode berikut untuk CheckBox1 perubahan acara:
8. Private Sub CheckBox1_Change()
9.
10.
Select Case CheckBox1.Value
11.
Case True
12.
CheckBox1.Caption = "True"
13.
Case False
14.
15.
16.
17.
18.
CheckBox1.Caption = "False"
Case Else
CheckBox1.Caption = "Null"
End Select
End Sub
19. Pada Menjalankan Menu, klik Menjalankan Sub UserForm.
Ketika Anda mengklik Kotak centang kontrol, Caption kotak centang kontrol perubahan
untuk mencerminkan nilai saat ini.
Kontrol ToggleButton
Kontrol ToggleButton memiliki penampilan yang sama sebagai CommandButton control
hingga Anda mengklik itu. Ketika Anda mengklik kontrol ToggleButton , tampaknya harus
ditekan atau ditekan. Nilai properti kontrol ToggleButton adalah palsu dan benar ketika
tombol dipilih ketika tombol tidak dipilih. Jika nilai properti TripleStatebenar,
ToggleButton kontrol juga dapat memiliki nilai Null. Kontrol ToggleButton yang
mempunyai nilai Null muncul tidak tersedia.
CatatanPada nilai, nilai Ya dan nilai sebenarnya menunjukkan bahwa kontrol
ToggleButton yang dipilih. Nilai Off , tidak ada nilai dan nilai False menunjukkan bahwa
kontrol ToggleButton yang tidak dipilih.
Cara mendapatkan nilai kontrol ToggleButton
Untuk mendapatkan nilai ToggleButton kontrol, ikuti langkah berikut:
1. Memulai Excel, dan kemudian buka buku kerja baru kosong.
2. Pada Alat Menu, titik untukMakro, lalu klik Visual Basic Editor.
3. Pada Masukkan Menu, klikUserForm untuk memasukkan UserForm di buku
kerja Anda.
4. Tambahkan kontrol ToggleButton pada UserForm.
5. Tambahkan kontrol Label untuk UserForm.
6. Klik dua kali ToggleButton kontrol untuk Buka jendela kode untuk
ToggleButton kontrol.
7. Dalam jendela kode, ketik kode berikut untuk ToggleButton1Click acara:
8. Private Sub ToggleButton1_Click()
9.
10.
If ToggleButton1.Value = True Then
11.
' Set UserForm background to Red.
12.
Me.BackColor = RGB(255, 0, 0)
13.
Else
14.
' Set UserForm background to Blue.
15.
16.
17.
Me.BackColor = RGB(0, 0, 255)
End If
End Sub
18. Pada Menjalankan Menu, klik Menjalankan Sub UserForm.
Ketika Anda mengklik kontrol ToggleButton , warna latar belakang perubahan UserForm.
Cara membuat sekelompok saling eksklusif ToggleButton kontrol
Contoh ini menggunakan MouseUp event untuk menetapkan variabel dan memanggil
prosedur ExclusiveToggleButtons . Prosedur ExclusiveToggleButtons menentukan
ToggleButton kontrol yang dipilih, dan kemudian membatalkan yang lain. Untuk membuat
sekelompok saling eksklusif ToggleButton kontrol, ikuti langkah berikut:
1. Memulai Excel, dan kemudian buka buku kerja baru kosong.
2. Pada Alat Menu, titik untukMakro, lalu klik Visual Basic Editor.
3. Pada Masukkan Menu, klikModul.
4. Dalam jendela kode untuk modul, ketik kode berikut:
5. ' Variable that holds the name of the ToggleButton that was
clicked.
6. Public clicked As String
7.
8. Sub ExclusiveToggleButtons()
9.
10.
Dim toggle As Control
11.
12.
' Loop through all the ToggleButtons on Frame1.
13.
For Each toggle In UserForm1.Frame1.Controls
14.
15.
' If Name of ToggleButton matches name of
ToggleButton
16.
' that was clicked...
17.
If toggle.Name = clicked Then
18.
'...select the button.
19.
toggle.Value = True
20.
Else
21.
'...otherwise clear the selection of the button.
22.
toggle.Value = False
23.
End If
24.
Next
25.
End Sub
26. Pada Masukkan Menu, klikUserForm untuk memasukkan UserForm di buku
kerja Anda.
27. Tambahkan kontrol Frame untuk UserForm.
28. Tambahkan kontrol ToggleButton di kontrol Frame .
Ulangi langkah ini untuk menambahkan dua lebih ToggleButton kontrol
mengendalikan Frame .
29. Klik dua kali Bingkai kontrol untuk menampilkan jendela kode untuk
UserForm.
30. Dalam jendela kode untuk modul, ketik kode berikut untuk ToggleButton
MouseUp event:
31.
_
Private Sub ToggleButton1_MouseUp(ByVal Button As Integer,
32.
ByVal Y As Single)
33.
34.
35.
36.
37.
38.
39.
ByVal Shift As Integer, ByVal X As Single,
clicked = ToggleButton1.Name
Application.OnTime Now, "ExclusiveToggleButtons"
End Sub
Private Sub ToggleButton2_MouseUp(ByVal Button As
Integer, _
40.
ByVal Shift As Integer, ByVal X As Single,
ByVal Y As Single)
41.
42.
clicked = ToggleButton2.Name
43.
Application.OnTime Now, "ExclusiveToggleButtons"
44.
45.
End Sub
46.
47.
Private Sub ToggleButton3_MouseUp(ByVal Button As
Integer, _
48.
ByVal Shift As Integer, ByVal X As Single,
ByVal Y As Single)
49.
50.
clicked = ToggleButton3.Name
51.
Application.OnTime Now, "ExclusiveToggleButtons"