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 peristiwa-peristiwa 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
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
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.
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.
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.
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
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
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"
20. ' Set the font color to blue. 21. .ForeColor = RGB(0, 0, 255) 22. End With
23.
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. Private Sub CommandButton1_Click() 11.
12. If TextBox1.Text <> "userform" Then
14. TextBox1.Text = "" 15. TextBox1.SetFocus
16. Else
17. MsgBox "Welcome!" 18. Unload Me
19. End If
20.
21. End Sub
22.
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)
11. blue = Int(Rnd * 255)
12. CommandButton1.BackColor = RGB(red, green, blue) 13.
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:
10. MsgBox ListBox1.Value 11.
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. Property Value
9. --- ---10. 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. Sub CommandButton1_Click () 15.
16. ' Loop through the items in the ListBox. 17. For x = 0 to ListBox1.ListCount - 1 18.
19. ' If the item is selected...
20. If ListBox1.Selected(x) = True Then 21.
24. End If 25. Next x 26.
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.
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:
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:
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. Property Value
10. ---11. BoundColumn 1
12. ColumnCount 3 13. 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. Private Sub ListBox1_Change() 17.
18. Dim SourceData As Range
19. Dim Val1 As String, Val2 As String, Val3 As String
20.
21. Set SourceRange = Range(ListBox1.RowSource)
22.
23. Val1 = ListBox1.Value
24. 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
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. Private Sub CommandButton1_Click() 12.
13. ListBox1.RowSource = "" 14.
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.
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. Private Sub CommandButton1_Click() 23.
24. For i = 1 To ListBox1.ListCount 25. ListBox1.RemoveItem 0
26. Next I
27.
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
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:
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. Private Sub CommandButton1_Click() 23.
24. Dim listvar As Variant
25.
26. listvar = ComboBox1.List
27.
28. On Error Resume Next
29. ' If the item is not found in the list...
30. 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.
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. Private Sub CommandButton1_Click() 13.
14. Dim SourceData As Range 15. Dim found As Object
16.
17. Set SourceData = Range("ListRange") 18. Set found = Nothing
19. ' Try to find the value on the worksheet. 20. Set found = SourceData.Find(ComboBox1.Value)
22. ' If the item is not found in the list... 23. If found Is Nothing Then
24. ' redefine ListRange.
25. 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.
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. Private Sub ComboBox1_Click() 16.
17. Application.OnTime Now, "DropDown_ComboBox" 18.
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
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 Sub Frame1_Click() 9.
10. Dim Ctrl As Control
11.
12. For Each Ctrl In Frame1.Controls 13. Ctrl.Enabled = Not Ctrl.Enabled
14. Next
15.
End Sub
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
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
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. Private Sub CommandButton1_Click() 13.
14. Dim x As Control
15.
16. ' Loop through ALL the controls on the UserForm. 17. For Each x In Me.Controls
18. ' Check to see if "Option" is in the Name of each control.
19. If InStr(x.Name, "Option") Then 20. ' Check Group name.
21. If x.GroupName = "Group1" Then
22. ' Check the status of the OptionButton. 23. If x.Value = True Then
24. MsgBox x.Caption 25. Exit For
26. End If 27. End If 28. End If
29. Next
30.
End Sub
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
14. CheckBox1.Caption = "False" 15. Case Else
16. CheckBox1.Caption = "Null" 17. End Select
18.
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
15. Me.BackColor = RGB(0, 0, 255)
16. End If
17.
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.
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 Shift As Integer, ByVal X As Single, ByVal Y As Single)
33.
34. clicked = ToggleButton1.Name
35. Application.OnTime Now, "ExclusiveToggleButtons" 36.
37. End Sub 38.
39. 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" 52.
End Sub
53. Pada Menjalankan Menu, klik Menjalankan Sub UserForm.
Ketika Anda mengklik kontrol ToggleButton , kontrol ToggleButton dipilih sebelumnya dibatalkan.
Kontrol TabStrip
Gunakan kontrol TabStrip untuk melihat berbeda set informasi untuk satu set kontrol.
Bagaimana mengontrol kontrol TabStrip pemrograman
1. Memulai Excel, dan kemudian buka buku kerja baru kosong.
2. Pada Alat Menu, titik untukMakro, lalu klik Editor Visual Basic.
3. Pada Masukkan Menu, klikUserForm untuk memasukkan UserForm di buku kerja Anda.
4. Tambahkan kontrol TabStrip untuk UserForm.
5. Tambahkan gambar kontrol yang mencakup basis kontrol TabStrip , tetapi yang tidak mencakup tab.
6. Di panel properti untuk Image1, ketik& H000000FF & dalam BackColor
properti.
7. Klik dua kali TabStrip Control untuk membuka jendela kode untuk TabStrip
kontrol.
8. Dalam jendela kode, ketik kode berikut untuk TabStrip1 perubahan acara:
9. Private Sub TabStrip1_Change() 10.
11. Dim i As Integer 12.
13. i = TabStrip1.SelectedItem.Index 14. Select Case i
15. Case 0
16. ' If Tab1 is selected, change the color of Image control to Red.
17. Image1.BackColor = RGB(255, 0, 0) 18. Case 1
19. ' If Tab2 is selected, change the color of Image control to Green.
20. Image1.BackColor = RGB(0, 255, 0) 21. End Select
22.
End Sub
23. Pada Menjalankan Menu, klik Menjalankan Sub UserForm.
Warna gambar kontrol berubah tergantung pada halaman dalam kontrol TabStrip yang aktif.
Untuk informasi tambahan tentang TabStrip kontrol, klik nomor artikel berikut ini untuk melihat artikel di Basis Pengetahuan Microsoft:
213254
(http://support.microsoft.com/kb/213254/ )
XL2000: Cara menggunakan kontrol TabStrip di UserForm
MultiPage kontrol
masing-masing berisi kumpulan kontrol. Kamu bisa menyetel halaman aktif pemrograman dengan menetapkan nilai properti kontrol MultiPage .
Bagaimana mengontrol kontrol MultiPage pemrograman
Untuk menambahkan kontrol MultiPage dan mengendalikan dengan menggunakan makro, 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 MultiPage untuk UserForm.
5. Tambahkan kontrol Label untuk Page1 pada MultiPage control.
6. Menambah kontrol TextBox Page1 pada kontrol MultiPage .
7. Pada MultiPage control, klik Page2, dan kemudian ulangi langkah 5 dan 6 untuk menambahkan sebuah kontrol Label dan kontrol TextBox .
8. Klik dua kali MultiPage Control untuk membuka jendela kode untuk kontrol
MultiPage .
9. Dalam jendela kode, ketik kode berikut untuk MultiPage1 perubahan acara:
10. Private Sub MultiPage1_Change() 11.
12. Select Case MultiPage1.Value 13. ' If activating Page1... 14. Case 0
15. Label1.Caption = TextBox2.Text 16. TextBox1.Text = ""
17. ' If activating Page2... 18. Case 1
19. Label2.Caption = TextBox1.Text 20. TextBox2.Text = ""
21. End Select 22.
End Sub
23. Dalam jendela kode, ketik kode berikut untuk Menginisialisasi UserForm
acara:
24. Private Sub UserForm_Initialize() 25.
26. ' Force Page1 to be active when UserForm is displayed. 27. MultiPage1.Value = 0
28. Label1.Caption = "" 29.
30. Pada Menjalankan Menu, klik Menjalankan Sub UserForm.
Dalam kontrol TextBox pada Page1, ketik Tes. Ketika Anda Klik Page2 tab,
TextBox2 dibersihkan, dan judul Label2 perubahan ke entri yang Anda buat di
TextBox1 di Page1 ("Test").
Cara membuat antarmuka wizard dengan menggunakan kontrol MultiPage
Ketika tugas yang membutuhkan beberapa langkah-langkah bertahap, antarmuka wizard dapat sangat efektif. Anda dapat menggunakan kontrol MultiPage untuk membuat antarmuka wizard daripada menggunakan beberapa UserForms. Contoh ini memanipulasi kontrol
MultiPage yang memiliki tiga halaman. Prosedur yang melekat pada Menginisialisasi acara UserForm menonaktifkan Page2 dan Page3, dan pasukan Page1 kontrol MultiPage aktif.
Catatan Ketika Anda mengindeks halaman MultiPage kontrol dengan menggunakan kumpulan halaman , halaman pertama dalam koleksi adalah halaman nol. Ini prosedur juga menetapkan judul CommandButton kontrol dan menonaktifkan <> tombol.
Catatan Prosedur yang ditetapkan untuk Klik acara CommandButton1 kontrol fungsi <>
tombol. Prosedur yang ditetapkan untuk Klik acara CommandButton2 kontrol fungsi
berikutnya mengatakan tombol. Untuk membuat antarmuka wizard yang menggunakan kontrol MultiPage , 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 MultiPage untuk UserForm.
5. Klik kanan Page1 tab, dan kemudian klikHalaman baru untuk menambahkan Page3 ke kontrol MultiPage .
6. Tambahkan control CommandButton ke atas UserForm yang tidak pada
MultiPage control.
Ulangi langkah ini untuk menambahkan control CommandButton ke atas
kedua UserForm.
7. Klik dua kali UserForm untuk membuka kode jendela untuk UserForm.
8. Dalam jendela kode, ketik kode berikut untuk Menginisialisasi UserForm
acara:
9. Private Sub UserForm_Initialize() 10.
11. With MultiPage1
14. .Pages(2).Enabled = False 20. CommandButton1.Caption = "<Back"
21. CommandButton1.Enabled = False 22. CommandButton2.Caption = "Next>" 23.
24. End Sub
25.
26. ' Procedure for the "<Back" button 27. Private Sub CommandButton1_Click() 28. Select Case MultiPage1.Value
29. Case 1 ' If Page2
42. CommandButton2.Caption = "Next>" 43. End With
44. End Select 45.
46. End Sub
47.
48. ' Procedure for the "Next>" button 49. Private Sub CommandButton2_Click() 50.
51. Select Case MultiPage1.Value
60. Case 1 ' If Page2 is active...
61. With MultiPage1
62. .Value = MultiPage1.Value + 1 ' Move forward 1 page.
63. .Pages(2).Enabled = True ' Enable Page3.
64. .Pages(1).Enabled = False ' Disable Page2.
65. End With
66. CommandButton2.Caption = "Finish" ' Change Next button to Finish.
67.
68. Case 2 ' If Page3 is active...
69. MsgBox "Finished!" ' User is Finished.
70. Unload Me ' Unload the UserForm.
71. End Select 72.
73. End Sub
74. Pada Menjalankan Menu, klik Menjalankan Sub UserForm.
Ketika Anda mengklik Berikutnya mengatakanPage2 diaktifkan dan The <> tombol akan tersedia. Ketika Anda mengklik Berikutnya mengatakan kedua kalinya, Page3 diaktifkan dan judul untuk CommandButton2 perubahan ke "Selesai".
Kontrol ScrollBar
Anda dapat menggunakan kontrol ScrollBar ketika Anda ingin mengubah nilai yang ditampilkan oleh kontrol lainnya, seperti Label kontrol.
Cara mengubah sebuah kontrol Label yang didasarkan pada nilai kontrol ScrollBar
Untuk mengubah properti Caption kontrol Label ke pengaturan saat ini nilai properti kontrol
ScrollBar , 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 ScrollBar untuk UserForm.
5. Tambahkan kontrol Label untuk UserForm.
6. Klik dua kali ScrollBar Control untuk membuka jendela kode untuk kontrol
ScrollBar .
8. Private Sub ScrollBar1_Change() 9.
10. Label1.Caption = ScrollBar1.Value 11.
End Sub
12. Pada Menjalankan Menu, klik Menjalankan Sub UserForm.
Ketika Anda gulir dengan menggunakan kontrol ScrollBar , Label1 diperbarui dengan nilai sekarang dari kontrol ScrollBar .
Kontrol SpinButton
Kontrol SpinButton , seperti kontrol ScrollBar , sering digunakan untuk kenaikan atau kurangi nilai kontrol lainnya, seperti Label kontrol. Properti SmallChange menentukan berapa banyak nilai kontrol SpinButton berubah ketika diklik.
Cara menambah kontrol SpinButton yang akan menambahkan atau decrements tanggal yang disimpan dalam kontrol TextBox
Untuk menambahkan kontrol SpinButton yang akan menambahkan atau decrements tanggal yang disimpan dalam kontrol TextBox , 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 SpinButton untuk UserForm.
5. Tambahkan kontrol TextBox untuk UserForm.
6. Klik dua kali SpinButton kontrol untuk Buka jendela kode untuk SpinButton
kontrol.
7. Dalam jendela kode, ketik kode berikut untuk acara SpinButton1 SpinUp :
8. Private Sub SpinButton1_SpinUp() 9.
10. TextBox1.Text = DateValue(TextBox1.Text) + 1 11.
12. End Sub
13. Dalam jendela kode, ketik kode berikut untuk acara SpinButton1 SpinDown :
14. Private Sub SpinButton1_SpinDown() 15.
16. TextBox1.Text = DateValue(TextBox1.Text) - 1 17.
19. Dalam jendela kode, ketik kode berikut untuk Menginisialisasi UserForm
acara:
20. Private Sub UserForm_Initialize() 21.
22. TextBox1.Text = Date 23.
24. End Sub
25. Pada Menjalankan Menu, klik Menjalankan Sub UserForm.
Ketika UserForm muncul, tanggal saat ini muncul di TextBox1. Ketika Anda meng-klik kontrol SpinButton , tanggal incremented atau decremented oleh salah satu hari.
Dalam contoh ini, jika Anda mengubah properti SmallChange dari SpinButton1, Anda tidak mempengaruhi jumlah entri dalam TextBox1 diganti oleh ketika Anda mengklik
SpinButton1hari. Jumlah hari ditentukan hanya oleh prosedur yang Anda melekat pada acara
SpinUp dan SpinDown peristiwa SpinButton1.
Untuk informasi tambahan tentang SpinButton kontrol, klik nomor artikel berikut ini untuk melihat artikel pada Basis Pengetahuan Microsoft:
213224
(http://support.microsoft.com/kb/213224/ )
XL2000: Visual Basic contoh untuk menggunakan tombol Spin dengan tanggal
RefEdit kontrol
RefEdit kontrol meniru perilaku kotak referensi yang dibangun dalam Excel. Anda dapat menggunakan nilai properti untuk mendapatkan alamat sel yang saat ini disimpan di RefEdit
kontrol.
Cara mengisi kisaran sel yang didasarkan pada kisaran yang Anda pilih dengan menggunakan RefEdit kontrol
Untuk menggunakan RefEdit kontrol untuk mengisi sel, 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 RefEdit kontrol untuk UserForm.
5. Tambahkan kontrol CommandButton untuk UserForm.
6. Klik dua kali CommandButton kontrol untuk Buka jendela kode untuk control
CommandButton ke atas .
8. Private Sub CommandButton1_Click() 9.
10. Dim MyRange As String 11. MyRange = RefEdit1.Value 12. Range(MyRange).Value = "test" 13. Unload Me
14.
End Sub
15. Pada Menjalankan Menu, klik Menjalankan Sub UserForm.
UserFormappears.
16. Klik tombol di RefEdit kontrol.
Pemberitahuan bahwa UserForm runtuh.
17. Memilih kisaran sel-sel seperti A1:A5, dan kemudian klik tombol di RefEdit
kontrol untuk memperluas UserForm.
18. Klik CommandButton1.
UserForm menutup dan mengandung sel-sel yang Anda pilih sekarang kata "ujian".
Untuk informasi tambahan tentang RefEdit kontrol, klik artikel berikut nomor untuk melihat artikel di dalam Basis Pengetahuan Microsoft:
213776
(http://support.microsoft.com/kb/213776/ )
XL2000: Cara menggunakan RefEdit kontrol dengan UserForm
Gambar kontrol
Tujuan dari gambar kontrol adalah untuk menampilkan gambar di UserForm. Untuk menetapkan gambar untuk gambar kontrol saat menjalankan, menggunakan fungsi
LoadPicture .
Cara memuat gambar ke gambar kontrol
Untuk menyisipkan gambar kontrol yang meminta Anda untuk memilih gambar untuk memuat ketika Anda Klik gambar 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.