Cara Menggunakan Visual Basic For Applications (VBA) Untuk Mengubah UserForms Di Excel
Cara Menggunakan Visual Basic For Applications (VBA) Untuk Mengubah UserForms Di Excel
Masuk
Microsoft ended support for Office 2003 on April 8, 2014. This change has affected your software
updates and security options. Learn what this means for you and how to stay protected.
PENTING: Artikel ini diterjemahkan oleh perangkat lunak penerjemahan mesin Microsoft, dan mungkin
telah diedit oleh Masyarakat Microsoft melalui teknologi CTF dan bukan oleh seorang penerjemah
profesional. Microsoft menawarkan baik artikel yang diterjemahkan oleh manusia maupun artikel hasil
editan terjemahan oleh mesin/komunitas, sehingga Anda dapat mengakses semua artikel di Sentra
Pengetahuan yang kami miliki dalam berbagai bahasa. Namun artikel hasil editan mesin atau bahkan
komunitas tidak selalu sempurna. Artikel ini dapat mengandung kesalahan dalam hal kosa kata,
sintaksis atau tatabahasa, sangat mirip dengan penutur asing yang membuat kekeliruan ketika
berbicara dalam bahasa Anda. Microsoft tidak bertanggung jawab atas ketidakakuratan, kesalahan
atau kerugian apa pun akibat dari kekeliruan dalam penerjemahan isi atau penggunaannya oleh
pelanggan kami. Microsoft juga akan senantiasa memperbarui perangkat lunak penerjemahan mesin
dan alat untuk menyempurnakan Editan Hasil Penerjemahan Mesin.
Klik disini untuk melihat versi Inggris dari artikel ini: 829070
Ringkasan
Artikel ini menjelaskan cara mengubah UserForms secara sistematis di Microsoft Excel. Ini meliputi
contoh dan Microsoft Visual Basic untuk aplikasi VBA makro yang menunjukkan bagaimana cara
mengambil keuntungan dari kemampuan UserForms dan cara menggunakan kontrol ActiveX yang
tersedia untuk UserForms.
Pengenalan dasar UserForms menjelaskan cara menampilkan UserForms, cara sementara
menyembunyikan UserForms dan cara menyingkirkan UserForms. Anda juga akan menunjukkan
cara menggunakan peristiwa paling umum yang berkaitan dengan UserForms menginisialisasi
peristiwa, Klik peristiwa, dan peristiwa Hentikan . Satu atau lebih dari contoh berikut menunjukkan
cara menggunakan masingmasing kontrol ActiveX berikut di UserForm:
Label kontrol
Kontrol Kotak teks
Kontrol CommandButton
Kontrol CommandButton
Kontrol ListBox
Kontrol ComboBox
Bingkai kontrol
Kontrol OptionButton
Kotak centang kontrol
Kontrol ToggleButton
Kontrol TabStrip
Kontrol multiPage
Kontrol Bilah Penggulung
Kontrol SpinButton
RefEdit kontrol
kontrol Gambar
PENDAHULUAN
Artikel ini menjelaskan cara menggunakan VBA untuk membuat perubahan dalam UserForms di Excel.
Dasardasar UserForm
Cara menampilkan UserForm
Sintaks yang digunakan untuk menampilkan UserForm secara sistematis adalah sebagai berikut:
Sintaks yang digunakan untuk menampilkan UserForm secara sistematis adalah sebagai berikut:
UserFormName. Tampilkan
Untuk menampilkan UserForm yang bernama UserForm1, gunakan kode berikut ini:
UserForm1.Show
Anda dapat memuat UserForm ke memori tanpa benarbenar menampilkannya. Memerlukan UserForm
kompleks beberapa detik untuk ditampilkan. Karena Anda dapat memuatkan UserForm ke memori, Anda
dapat menentukan kapan menimbulkan beban ini. Untuk memuat UserForm1 ke memori tanpa
menampilkannya, gunakan kode berikut ini:
LoadUserForm1
Original
YoucanloadaUserFormintomemorywithoutactuallydisplayingit.
IMPROVETRANSLATION
Untuk menampilkan UserForm, Anda harus menggunakan metode Tampilkan yang sebelumnya telah
ditampilkan.
UserForm1.Hide
Untuk informasi tambahan, klik nomor artikel berikut ini untuk melihat artikel di Pangkalan Pengetahuan
Microsoft:
213747 XL2000: cara memindahkan antara UserForms kustom dengan tombol perintah
UnloadUserForm1
Jika Anda membongkar UserForm dalam prosedur peristiwa yang berkaitan dengan UserForm atau yang
tidak berkaitan dengan kontrol UserForm misalnya, Anda mengklik kontrol CommandButton , Anda
dapat menggunakan kata kunci "Me" bukannya nama UserForm. Untuk menggunakan "Me" kunci untuk
membongkar UserForm, gunakan kode berikut ini:
UnloadMe
PrivateSubUserForm_Click()
Me.Height=Int(Rnd*500)
Me.Width=Int(Rnd*750)
EndSub
PrivateSubUserForm_Initialize()
Me.Caption="EventsEventsEvents!"
Me.BackColor=RGB(10,25,100)
EndSub
PrivateSubUserForm_Resize()
msg="Width:"&Me.Width&Chr(10)&"Height:"&Me.Height
MsgBoxprompt:=msg,Title:="ResizeEvent"
EndSub
PrivateSubUserForm_QueryClose(CancelAsInteger,CloseModeAsIntege
r)
msg="NowUnloading"&Me.Caption
MsgBoxprompt:=msg,Title:="QueryCloseEvent"
EndSub
PrivateSubUserForm_Terminate()
msg="NowUnloading"&Me.Caption
MsgBoxprompt:=msg,Title:="TerminateEvent"
EndSub
PrivateSubCommandButton1_Click()
UnloadMe
EndSub
PrivateSubUserForm_QueryClose(CancelAsInteger,CloseModeAsIntege
r)
IFCloseMode=vbFormControlMenuThen
Cancel=True
Me.Caption="ClicktheCommandButtontocloseMe!"
EndIf
EndSub
Kode VBA
Excel termasuk 15 kontrol yang berbeda yang dapat Anda gunakan pada UserForms. Bagian ini berisi
berbagai contoh yang menggunakan kontrol ini secara programatik.
Catatan Kode VBA yang disertakan dalam artikel ini tidak berisi contoh yang mempengaruhi semua
Catatan Kode VBA yang disertakan dalam artikel ini tidak berisi contoh yang mempengaruhi semua
properti dan peristiwa untuk kontrol. Jika Anda memiliki, Anda dapat menggunakan jendela properti
untuk melihat daftar properti yang tersedia untuk kontrol. Untuk melihat daftar properti, Tampilan
menu, klik Jendela Properti.
UserFormName.Controlname.Property = Nilai
Sebagai contoh, jika Anda ingin menetapkan properti teks kontrol teks yang bernama TextBox1 di
UserForm yang bernama UserForm1 ke nilai Bob, gunakan kode berikut ini:
UserForm1.TextBox1.Text="Bob"
Jika kode dalam prosedur yang diawali dengan kejadian kontrol atau UserForm, Anda tidak harus
merujuk ke nama UserForm. Sebaliknya, gunakan kode berikut ini:
TextBox1.Text="Bob"
Ketika Anda melampirkan kode objek, kode yang dilampirkan ke salah satu dari peristiwa objek tersebut.
Dalam banyak contoh dalam artikel ini, Anda memasang kode untuk peristiwa Klik objek
CommandButton .
Kontrol label
Kontrol label terutama digunakan untuk menjelaskan kontrol lain di UserForm. Kontrol Label tidak dapat
diedit oleh pengguna ketika UserForm sedang berjalan. Gunakan properti judul untuk mengembalikan
teks di kontrol Label . Properti lainnya sering digunakan untuk memformat kontrol Label termasuk Font
properti dan properti ForeColor .
Untuk menggunakan pernyataan dengan mengubah properti kontrol Label , ikuti langkahlangkah
berikut:
1. Memulai Excel, dan kemudian membuka buku kerja kosong baru.
2. Pada menu Alat , arahkan ke Makro, lalu klik Editor Visual Basic.
3. Pada menu Sisipkan, klik UserForm untuk menyisipkan UserForm di buku kerja Anda.
4. Menambahkan kontrol Label untuk UserForm.
5. Menambah kontrol CommandButton UserForm.
6. Klik dua kali kontrol CommandButton untuk membuka jendela kode untuk UserForm.
7. Di jendela kode, ketik kode berikut untuk Klik CommandButton1 peristiwa:
PrivateSubCommandButton1_Click()
WithLabel1
'Setthetextofthelabel.
.Caption="ThisisLabelExample1"
'Automaticallysizethelabelcontrol.
.AutoSize=True
.WordWrap=False
'SetthefontusedbytheLabelcontrol.
.Font.Name="TimesNewRoman"
.Font.Size=14
.Font.Bold=True
'Setthefontcolortoblue.
.ForeColor=RGB(0,0,255)
EndWith
EndSub
PrivateSubCommandButton1_Click()
IfTextBox1.Text<>"userform"Then
MsgBox"PasswordisIncorrect.Pleasereenter."
TextBox1.Text=""
TextBox1.SetFocus
Else
MsgBox"Welcome!"
UnloadMe
EndIf
EndSub
Kontrol CommandButton
Anda dapat menggunakan kontrol CommandButton untuk memulai prosedur VBA. Prosedur VBA
biasanya dilampirkan ke acara Klik kontrol CommandButton . Untuk menggunakan kontrol
CommandButton yang menjalankan prosedur saat mengklik kejadian, ikuti langkahlangkah berikut:
1. Memulai Excel, dan kemudian membuka buku kerja kosong baru.
2. Pada menu Alat , arahkan ke Makro, lalu klik Editor Visual Basic.
3. Pada menu Sisipkan, klik UserForm untuk menyisipkan UserForm di buku kerja Anda.
4. Menambah kontrol CommandButton UserForm.
5. Klik dua kali CommandButton kontrol untuk menampilkan jendela kode untuk UserForm.
6. Di jendela kode, ketik kode berikut ini:
PrivateSubCommandButton1_Click()
red=Int(Rnd*255)
green=Int(Rnd*255)
blue=Int(Rnd*255)
CommandButton1.BackColor=RGB(red,green,blue)
EndSub
Kontrol ListBox
Tujuan kontrol ListBox adalah untuk menyajikan pengguna dengan daftar item untuk memilih dari. Anda
dapat menyimpan daftar item untuk ListBox kontrol di lembar kerja Excel. Untuk mengisi ListBox kontrol
dengan kisaran sel pada lembar kerja, gunakan RowSource properti. Ketika Anda menggunakan properti
MultiSelect , Anda dapat mengatur ListBox DNS untuk menerima beberapa pilihan.
2. Di sel A1: A5 pada Sheet1, ketik nilai yang ingin Anda gunakan untuk mengisi ListBox DNS.
3. Pada menu Alat , arahkan ke Makro, lalu klik Editor Visual Basic.
4. Pada menu Sisipkan, klik UserForm untuk menyisipkan UserForm di buku kerja Anda.
5. Menambah kontrol ListBox UserForm.
6. Klik dua kali ListBox kontrol untuk menampilkan jendela kode untuk ListBox DNS.
7. Di jendela kode, ketik kode berikut untuk Klik ListBox1 peristiwa:
PrivateSubListBox1_Click()
MsgBoxListBox1.Value
EndSub
Cara mendapatkan item yang dipilih dalam beberapa kontrol ListBox pilihan
Untuk menentukan item yang dipilih dalam memilih banyak kontrol ListBox , Anda harus mengulang
semua item dalam daftar, dan kemudian kueri properti dipilih . Untuk mengembalikan item yang dipilih
dalam memilih banyak kontrol ListBox , ikuti langkahlangkah berikut:
1. Memulai Excel, dan kemudian membuka buku kerja kosong baru.
2. Di sel A1: A5 pada Sheet1, ketik nilai yang ingin Anda gunakan untuk mengisi ListBox DNS.
3. Pada menu Alat , arahkan ke Makro, lalu klik Editor Visual Basic.
4. Pada menu Sisipkan, klik UserForm untuk menyisipkan UserForm di buku kerja Anda.
5. Menambah kontrol ListBox UserForm.
6. Pada menu tampilan , klik properti untuk melihat jendela properti.
7. Ketik nilai yang ditunjukkan untuk properti kontrol ListBox berikut ini:
Property
Value
MultiSelect 1frmMultiSelectMulti
RowSource
Sheet1!A1:A8
9. Klik dua kali CommandButton kontrol untuk menampilkan jendela kode untuk UserForm.
10. Di jendela kode, ketik kode berikut untuk Klik CommandButton1 peristiwa:
SubCommandButton1_Click()
'LoopthroughtheitemsintheListBox.
Forx=0toListBox1.ListCount1
'Iftheitemisselected...
IfListBox1.Selected(x)=TrueThen
'displaytheSelecteditem.
MsgBoxListBox1.List(x)
EndIf
Nextx
EndSub
Cara menggunakan properti RowSource untuk mengisi ListBox kontrol dengan sel pada
lembar kerja
Untuk menggunakan properti RowSource untuk mengisi ListBox DNS dari kisaran sel pada lembar kerja,
ikuti langkahlangkah berikut:
1. Memulai Excel, dan kemudian membuka buku kerja kosong baru.
2. Di sel A1: A5 pada Sheet1, ketik nilai yang ingin Anda gunakan untuk mengisi ListBox DNS.
3. Pada menu Alat , arahkan ke Makro, lalu klik Editor Visual Basic.
4. Pada menu Sisipkan, klik UserForm untuk menyisipkan UserForm di buku kerja Anda.
5. Menambah kontrol ListBox UserForm.
6. Menambah kontrol CommandButton UserForm.
7. Klik dua kali CommandButton kontrol untuk menampilkan jendela kode untuk UserForm.
8. Di jendela kode, ketik kode berikut untuk Klik CommandButton1 peristiwa:
PrivateSubCommandButton1_Click()
ListBox1.RowSource="=Sheet1!A1:A5"
EndSub
SubPopulateListBox()
DimMyArrayAsVariant
DimCtrAsInteger
MyArray=Array("Apples","Oranges","Peaches","Bananas","Pineapp
les")
ForCtr=LBound(MyArray)ToUBound(MyArray)
UserForm1.ListBox1.AddItemMyArray(Ctr)
Next
UserForm1.Show
EndSub
7. Pada menu alat , klik makro, klik PopulateListBox, dan kemudian klik Jalankan.
Prosedur PopulateListBox membangun array sederhana, kemudian menambahkan item dalam array ke
Prosedur PopulateListBox membangun array sederhana, kemudian menambahkan item dalam array ke
ListBox control dengan menggunakan metode AddItem . Kemudian, UserForm muncul.
Cara menggunakan horizontal kisaran sel pada lembar kerja untuk mengisi ListBox DNS
Jika Anda menetapkan properti RowSource ListBox DNS untuk horizontal kisaran sel, hanya nilai
pertama ditampilkan di ListBox DNS.
Untuk mengisi ListBox DNS dari kisaran horizontal sel dengan menggunakan metode AddItem , ikuti
langkahlangkah berikut:
1. Memulai Excel, dan kemudian membuka buku kerja kosong baru.
2. Di sel A1:E1 pada Sheet1, ketik nilai yang ingin touse mengisi ListBox DNS.
3. Pada menu alat , titikmakro, dan kemudian klik Visual BasicEditor.
4. Masukkan menu, klikUserForm untuk memasukkan UserForm di buku kerja Anda.
5. Menambah kontrol ListBox UserForm.
6. Di menu sisipkan , klikmodul untuk menyisipkan lembar modul.
7. Di jendela kode, ketik kode berikut ini:
SubPopulateListWithHorizontalRange()
ForEachxInSheet1.Range("A1:E1")
UserForm1.ListBox1.AddItemx.Value
Next
UserForm1.Show
EndSub
Bagaimana cara mengembalikan banyak nilai dari kontrol ListBox yang dibatasi untuk
beberapa kolom data
Anda dapat memformat ListBox kontrol untuk menampilkan lebih dari satu kolom data. Ini berarti bahwa
kontrol ListBox menampilkan lebih dari satu item di setiap baris dari daftar. Untuk mengembalikan
banyak nilai dari item yang dipilih dalam daftar, ikuti langkahlangkah berikut:
1. Memulai Excel, dan kemudian membuka buku kerja kosong baru.
2. Jenis data berikut dalam sel yang ditunjukkan onSheet1:
A1: tahun
B1: wilayah
C1: penjualan
A1: tahun
B1: wilayah
C1: penjualan
A2: 1996
B2: Utara
C2: 140
A3: 1996
B3: Selatan
C3: 210
A4: 1997
B4: Utara
C4: 190
J5: 1997
B5: Selatan
C5: 195
PropertyValue
BoundColumn1
ColumnCount3
ColumnHeadsTrue
RowSourceSheet1!A2:A5
9. Klik dua kali ListBox kontrol todisplay jendela kode untuk ListBox DNS.
10. Di jendela kode, ketik kode berikut ini:
PrivateSubListBox1_Change()
DimSourceDataAsRange
DimVal1AsString,Val2AsString,Val3AsString
SetSourceRange=Range(ListBox1.RowSource)
Val1=ListBox1.Value
Val2=SourceRange.Offset(ListBox1.ListIndex,1).Resize(1,1).Value
Val3=SourceRange.Offset(ListBox1.ListIndex,2).Resize(1,1).Value
Label1.Caption=Val1&""&Val2&""&Val3
EndSub
PrivateSubCommandButton1_Click()
ListBox1.RowSource=""
EndSub
Cara menghapus semua item dari kontrol ListBox yang tidak dibatasi ke lembar kerja
Ada tidak ada satu VBA perintah yang akan menghapus semua item dari kontrol ListBox jika daftar tidak
dibatasi ke lembar kerja. Untuk menghapus semua item dari kontrol ListBox yang diisi dari array Visual
Basic, ikuti langkahlangkah berikut:
SubPopulateListBox()
DimMyArrayAsVariant
DimCtrAsInteger
MyArray=Array("Apples","Oranges","Peaches","Bananas","Pineapp
les")
ForCtr=LBound(MyArray)ToUBound(MyArray)
UserForm1.ListBox1.AddItemMyArray(Ctr)
Next
UserForm1.Show
EndSub
PrivateSubCommandButton1_Click()
Fori=1ToListBox1.ListCount
ListBox1.RemoveItem0
NextI
EndSub
10. Pada menu alat , klikmakro, klik PopulateListBox, dan kemudian klikJalankan.
Kontrol ListBox diisi, dan kemudian UserForm muncul.
11. Klik CommandButton1.
Semua item yang dihapus dari ListBox1.
Kontrol ComboBox
Anda dapat menggunakan kontrol ComboBox sebagai kotak daftar dropdown, atau kotak kombo di
mana Anda dapat memilih nilai dalam daftar atau ketik nilai baru. Properti gaya menentukan jika kontrol
ComboBox bertindak sebagai sebuah kotak daftar dropdown atau kotak kombo.
Catatan Semua contoh di bagian sebelumnya untuk mengontrol ListBox juga dapat diterapkan ke
control ComboBox , kecuali contoh "Cara mendapatkan item yang dipilih dalam memilih banyak kontrol
ListBox".
Cara menambahkan item baru ke daftar jika kontrol ComboBox tidak dibatasi ke lembar
kerja
Saat Anda mengetik nilai yang sudah tidak dalam daftar di ComboBox kontrol, Anda mungkin ingin
menambahkan nilai yang baru ke daftar. Untuk menambahkan nilai yang baru yang Anda ketik dalam
kontrol ComboBox jika kontrol ComboBox tidak dibatasi ke lembar kerja, ikuti langkahlangkah berikut:
1. Memulai Excel, dan kemudian membuka buku kerja kosong baru.
2. Pada menu alat , titikmakro, dan kemudian klik Visual BasicEditor.
3. Masukkan menu, klikUserForm untuk memasukkan UserForm di buku kerja Anda.
4. Menambah kontrol ComboBox UserForm.
5. Di menu sisipkan , klikmodul untuk menyisipkan lembar modul.
6. Di jendela kode, ketik kode berikut ini:
SubPopulateComboBox()
DimMyArrayAsVariant
DimCtrAsInteger
MyArray=Array("Apples","Oranges","Peaches","Bananas","Pineap
ples")
ForCtr=LBound(MyArray)ToUbound(MyArray)
UserForm1.ComboBox1.AddItemMyArray(Ctr)
Next
UserForm1.Show
EndSub
PrivateSubCommandButton1_Click()
DimlistvarAsVariant
listvar=ComboBox1.List
OnErrorResumeNext
'Iftheitemisnotfoundinthelist...
IfIsError(WorksheetFunction.Match(ComboBox1.Value,listvar,0))T
hen
'addthenewvaluetothelist.
ComboBox1.AddItemComboBox1.Value
EndIf
EndSub
10. Pada menu alat , klikmakro, klik PopulateListBox, dan kemudian klikJalankan.
Kontrol ComboBox diisi, dan kemudian UserForm muncul.
11. Kontrol ComboBox , ketik Mangga atau salah satu nilai thatis belum dalam daftar.
12. Klik CommandButton1.
Nilai yang baru yang Anda ketik sekarang muncul di bagian akhir dari daftar.
Cara menambahkan item baru ke daftar jika kontrol ComboBox dibatasi ke lembar kerja
Ketika pengguna jenis nilai yang sudah tidak dalam daftar di kontrol ComboBox , Anda mungkin ingin
menambahkan nilai yang baru ke dalam daftar. Untuk menambahkan nilai yang baru yang Anda ketik
dalam kontrol ComboBox ke daftar, ikuti langkahlangkah berikut:
1. Memulai Excel, dan kemudian membuka buku kerja kosong baru.
2. Di sel A1: A5 di Sheet1, ketik nilai yang ingin touse mengisi ComboBox kontrol.
3. Pilih sel A1: A5 di lembar1.
4. Pada menu sisipkan , arahkan kenama, dan kemudian klik tetapkan.
Di kotaknama di buku kerja , ketik ListRange , kemudian klik OK. Ini membuat nama ditetapkan
ListRange. Anda dapat menggunakan nama yang ditetapkan ListRange untuk mengikat properti
RowSourceComboBox kontrol lembar kerja.
5. Pada menu alat , titikmakro, dan kemudian klik Visual BasicEditor.
6. Masukkan menu, klikUserForm untuk memasukkan UserForm di buku kerja Anda.
7. Menambahkan kontrol ComboBox untuk UserForm.
8. Pada properti untuk ComboBox1, ketik Sheet1! ListRange sebagai propertiRowSource .
9. Menambah kontrol CommandButton UserForm.
10. Klik dua kali CommandButton kontrol todisplay jendela kode untuk CommandButton kontrol.
11. Di jendela kode, ketik kode berikut untuk Klik CommandButton1 peristiwa:
PrivateSubCommandButton1_Click()
DimSourceDataAsRange
DimfoundAsObject
SetSourceData=Range("ListRange")
Setfound=Nothing
'Trytofindthevalueontheworksheet.
Setfound=SourceData.Find(ComboBox1.Value)
'Iftheitemisnotfoundinthelist...
IffoundIsNothingThen
'redefineListRange.
SourceData.Resize(SourceData.Rows.Count+1,1).Name="ListRan
ge"
'Addthenewitemtotheendofthelistontheworksheet.
SourceData.Offset(SourceData.Rows.Count,0).Resize(1,1).Value
_
=ComboBox1.Value
'ResetthelistdisplayedintheComboBox.
ComboBox1.RowSource=Range("listrange").Address(external:=Tru
e)
EndIf
EndSub
PrivateSubUserForm_Activate()
ComboBox1.DropDown
EndSub
Cara menampilkan daftar satu kontrol ComboBox ketika Anda membuat pilihan dalam
kontrol ComboBox lainnya
Untuk secara otomatis menampilkan daftar satu ComboBox kontrol saat pilihan yang dibuat di kontrol
Untuk secara otomatis menampilkan daftar satu ComboBox kontrol saat pilihan yang dibuat di kontrol
ComboBox lainnya, ikuti langkahlangkah berikut:
1. Memulai Excel, dan kemudian membuka buku kerja kosong baru.
2. Di sel A1:A10 pada Sheet1, ketik nilai yang ingin touse mengisi ComboBox kontrol.
3. Pada menu alat , titikmakro, dan kemudian klik Visual BasicEditor.
4. Masukkan menu, klikmodul.
5. Di jendela kode untuk modul, ketik kode berikut ini:
SubDropDown_ComboBox()
UserForm1.ComboBox2.DropDown
EndSub
PrivateSubComboBox1_Click()
Application.OnTimeNow,"DropDown_ComboBox"
EndSub
Bingkai kontrol
Menggunakan kontrol Frame untuk grup item Logis terkait di UserForm. Kontrol bingkai sering
digunakan untuk grup OptionButton kontrol.
PrivateSubFrame1_Click()
DimCtrlAsControl
ForEachCtrlInFrame1.Controls
Ctrl.Enabled=NotCtrl.Enabled
Next
EndSub
8. Pada menu dijalankan , klik RunSub UserForm.
Kontrol OptionButton
Anda dapat menggunakan grup OptionButton kontrol untuk membuat satu pilihan antara sekelompok
opsi. Anda dapat menggunakan salah satu dari teknik berikut untuk grup OptionButton kontrol:
Bingkai kontrol
Properti GroupName
CatatanPada nilai, nilai ya , dan nilai yang benar menunjukkan bahwa OptionButton dipilih. Nilai
dari , tidak ada nilai dan nilai False menunjukkan bahwa OptionButton tidak dipilih.
Cara menentukan OptionButton kontrol yang dipilih ketika kontrol OptionButton pada
kontrol bingkai
Ketika Anda grup OptionButtons kontrol dengan menggunakan kontrol Frame , Anda dapat
menentukan kontrol OptionButton yang dipilih secara looping melalui semua kontrol dalam Frame
kontrol dan memeriksa nilai properti setiap kontrol. Untuk menentukan OptionButton kontrol yang
dipilih, ikuti langkahlangkah berikut:
1. Memulai Excel, dan kemudian membuka buku kerja kosong baru.
2. Pada menu alat , titikmakro, dan kemudian klik Visual BasicEditor.
3. Masukkan menu, klikUserForm untuk memasukkan UserForm di buku kerja Anda.
4. Menambah kontrol Frame UserForm.
5. Menambahkan kontrol OptionButton ke Frame control.
Ulangi langkah ini untuk menambahkan dua lebih OptionButton kontrol pada kontrol Frame .
6. Menambahkan kontrol CommandButton pada UserForm luar kontrol Frame .
7. Klik dua kali CommandButton kontrol todisplay jendela kode untuk UserForm.
8. Di jendela kode, ketik kode berikut untuk Klik CommandButton1 peristiwa:
PrivateSubCommandButton1_Click()
ForEachxInFrame1.Controls
Ifx.Value=TrueThen
MsgBoxx.Caption
EndIf
Next
EndSub
PrivateSubCommandButton1_Click()
DimxAsControl
'LoopthroughALLthecontrolsontheUserForm.
ForEachxInMe.Controls
'Checktoseeif"Option"isintheNameofeachcontrol.
IfInStr(x.Name,"Option")Then
'CheckGroupname.
Ifx.GroupName="Group1"Then
'CheckthestatusoftheOptionButton.
Ifx.Value=TrueThen
MsgBoxx.Caption
ExitFor
EndIf
EndIf
EndIf
Next
EndSub
PrivateSubCheckBox1_Change()
SelectCaseCheckBox1.Value
CaseTrue
CheckBox1.Caption="True"
CaseFalse
CheckBox1.Caption="False"
CaseElse
CheckBox1.Caption="Null"
EndSelect
EndSub
Kontrol ToggleButton
Kontrol ToggleButton memiliki tampilan yang sama sebagai kontrol CommandButton sebelum Anda
mengklik. Ketika Anda mengklik kontrol ToggleButton , sepertinya ditekan atau ditekan. Nilai properti
kontrol ToggleButton adalah palsu dan benar ketika tombol yang dipilih ketika tombol tidak dipilih. Jika
nilai properti TripleState benar, kontrol ToggleButton juga dapat memiliki nilai nol. Kontrol
ToggleButton yang memiliki nilai Null sepertinya tidak tersedia.
Catatan Pada nilai, nilai ya , dan nilai yang benar menunjukkan bahwa kontrol ToggleButton dipilih. Nilai
dari , tidak ada nilai dan nilai False menunjukkan bahwa kontrol ToggleButton tidak dipilih.
PrivateSubToggleButton1_Click()
IfToggleButton1.Value=TrueThen
'SetUserFormbackgroundtoRed.
Me.BackColor=RGB(255,0,0)
Else
'SetUserFormbackgroundtoBlue.
Me.BackColor=RGB(0,0,255)
EndIf
EndSub
'VariablethatholdsthenameoftheToggleButtonthatwasclicked.
PublicclickedAsString
SubExclusiveToggleButtons()
DimtoggleAsControl
'LoopthroughalltheToggleButtonsonFrame1.
ForEachtoggleInUserForm1.Frame1.Controls
'IfNameofToggleButtonmatchesnameofToggleButton
'thatwasclicked...
Iftoggle.Name=clickedThen
'...selectthebutton.
toggle.Value=True
Else
'...otherwisecleartheselectionofthebutton.
toggle.Value=False
EndIf
Next
EndSub
PrivateSubToggleButton1_MouseUp(ByValButtonAsInteger,_
ByValShiftAsInteger,ByValXAsSingle,ByValYAsSin
gle)
clicked=ToggleButton1.Name
Application.OnTimeNow,"ExclusiveToggleButtons"
EndSub
PrivateSubToggleButton2_MouseUp(ByValButtonAsInteger,_
ByValShiftAsInteger,ByValXAsSingle,ByValYAsSin
gle)
clicked=ToggleButton2.Name
Application.OnTimeNow,"ExclusiveToggleButtons"
EndSub
PrivateSubToggleButton3_MouseUp(ByValButtonAsInteger,_
ByValShiftAsInteger,ByValXAsSingle,ByValYAsSin
gle)
clicked=ToggleButton3.Name
Application.OnTimeNow,"ExclusiveToggleButtons"
EndSub
Bingkai kontrol
Menggunakan kontrol TabStrip untuk melihat set informasi untuk serangkaian kontrol yang berbeda.
Untuk mengubah properti BackColor kontrol gambar yang didasarkan pada tab yang dipilih, ikuti
Untuk mengubah properti BackColor kontrol gambar yang didasarkan pada tab yang dipilih, ikuti
langkahlangkah berikut:
1. Memulai Excel, dan kemudian membuka buku kerja kosong baru.
2. Pada menu alat , titikmakro, dan kemudian klik Penyunting Visual Basic.
3. Masukkan menu, klikUserForm untuk memasukkan UserForm di buku kerja Anda.
4. Menambah kontrol TabStrip UserForm.
5. Menambahkan gambar kontrol yang mencakup basis kontrol TabStrip , namun yang tidak
mencakup tab.
6. Di jendela properti untuk Image1, ketik& H000000FF & Properti BackColor .
7. Klik dua kali kontrol TabStrip openthe jendela kode untuk TabStrip kontrol.
8. Di jendela kode, ketik kode berikut untuk Mengubah TabStrip1 peristiwa:
PrivateSubTabStrip1_Change()
DimiAsInteger
i=TabStrip1.SelectedItem.Index
SelectCasei
Case0
'IfTab1isselected,changethecolorofImagecontrolto
Red.
Image1.BackColor=RGB(255,0,0)
Case1
'IfTab2isselected,changethecolorofImagecontrolto
Green.
Image1.BackColor=RGB(0,255,0)
EndSelect
EndSub
berisi serangkaian kontrol yang berbeda. Anda dapat mengatur halaman aktif secara sistematis dengan
menyetel nilai properti MultiPage kontrol.
Cara menentukan OptionButton kontrol yang dipilih ketika kontrol OptionButton pada
kontrol bingkai
Untuk menambahkan kontrol MultiPage dan kontrol dengan menggunakan makro, ikuti langkah
langkah berikut:
1. Memulai Excel, dan kemudian membuka buku kerja kosong baru.
2. Pada menu alat , titikmakro, dan kemudian klik Visual BasicEditor.
3. Masukkan menu, klikUserForm untuk memasukkan UserForm di buku kerja Anda.
4. Menambah kontrol MultiPage UserForm.
5. Menambahkan kontrol Label untuk Page1 di MultiPage kontrol.
6. Menambahkan kontrol teks untuk Page1 pada kontrol MultiPage .
7. Kontrol MultiPage , klik Page2, dan kemudian ulangi langkahlangkah 5and 6 untuk
menambahkan kontrol Label dan kontrol teks .
8. Klik dua kali kontrol MultiPage openthe jendela kode untuk mengontrol MultiPage .
9. Di jendela kode, ketik kode berikut untuk Mengubah MultiPage1 peristiwa:
PrivateSubMultiPage1_Change()
SelectCaseMultiPage1.Value
'IfactivatingPage1...
Case0
Label1.Caption=TextBox2.Text
TextBox1.Text=""
'IfactivatingPage2...
Case1
Label2.Caption=TextBox1.Text
TextBox2.Text=""
EndSelect
EndSub
10. Di jendela kode, ketik kode berikut ini untuk Menginisialisasi UserForm peristiwa:
PrivateSubUserForm_Initialize()
'ForcePage1tobeactivewhenUserFormisdisplayed.
MultiPage1.Value=0
Label1.Caption=""
EndSub
PrivateSubUserForm_Initialize()
WithMultiPage1
'Thenext2linesdisablePage2&Page3.
.Pages(1).Enabled=False
.Pages(2).Enabled=False
'MakePage1theactivepage.
.Value=0
EndWith
'SetthecaptionontheCommandButtons.
CommandButton1.Caption="<Back"
CommandButton1.Enabled=False
CommandButton2.Caption="Next>"
EndSub
'Procedureforthe"<Back"button
PrivateSubCommandButton1_Click()
SelectCaseMultiPage1.Value
Case1'IfPage2isactive...
WithMultiPage1
.Pages(0).Enabled=True'EnablePage1.
.Value=MultiPage1.Value1'Moveback1page.
.Pages(1).Enabled=False'DisablePage2.
EndWith
CommandButton1.Enabled=False'DisableBackbutton.
Case2'IfPage3isactive...
WithMultiPage1
.Pages(1).Enabled=True'EnablePage2.
.Value=MultiPage1.Value1'Moveback1page.
.Pages(2).Enabled=False'DisablePage3.
CommandButton2.Caption="Next>"
EndWith
EndSelect
EndSub
'Procedureforthe"Next>"button
PrivateSubCommandButton2_Click()
SelectCaseMultiPage1.Value
Case0'IfPage1isactive...
WithMultiPage1
.Value=MultiPage1.Value+1'Moveforward1page.
.Pages(1).Enabled=True'EnablePage2.
.Pages(0).Enabled=False'DisablePage1.
EndWith
CommandButton1.Enabled=True'EnableBackbutton.
Case1'IfPage2isactive...
WithMultiPage1
.Value=MultiPage1.Value+1'Moveforward1page.
.Pages(2).Enabled=True'EnablePage3.
.Pages(1).Enabled=False'DisablePage2.
EndWith
CommandButton2.Caption="Finish"'ChangeNextbuttonto
Finish.
Case2'IfPage3isactive...
MsgBox"Finished!"'UserisFinished.
UnloadMe'UnloadtheUserForm.
EndSelect
EndSub
Cara mengubah kontrol Label yang didasarkan pada nilai bilah penggulung kontrol
Untuk mengubah properti kontrol Label judul ke pengaturan saat ini nilai properti kontrol bilah
penggulung , ikuti langkahlangkah berikut:
1. Memulai Excel, dan kemudian membuka buku kerja kosong baru.
2. Pada menu alat , titikmakro, dan kemudian klik Visual BasicEditor.
3. Di kotak Teks pencarian , ketik nama kontrol yang Anda inginkan, dan kemudian klik Cari.
4. Menambahkan kontrol bilah penggulung untuk UserForm.
5. Menambahkan kontrol Label untuk UserForm.
6. Klik dua kali kontrol bilah penggulung openthe jendela kode untuk mengontrol bilah
penggulung .
7. Di jendela kode, ketik kode berikut untuk Mengubah ScrollBar1 peristiwa:
PrivateSubScrollBar1_Change()
Label1.Caption=ScrollBar1.Value
EndSub
SpinButton kontrol
Kontrol SpinButton , seperti kontrol bilah penggulung yang sering digunakan untuk kenaikan atau
Kontrol SpinButton , seperti kontrol bilah penggulung yang sering digunakan untuk kenaikan atau
menurunkan nilai kontrol lainnya, seperti kontrol Label . Properti SmallChange menentukan berapa
banyak nilai kontrol SpinButton perubahan ketika diklik.
Cara menambahkan kontrol SpinButton yang menambahkan atau usaha tanggal yang
disimpan di kotak teks kontrol
Untuk menambahkan kontrol SpinButton yang menambahkan atau usaha tanggal yang disimpan di
kotak teks kontrol, ikuti langkahlangkah berikut:
1. Memulai Excel, dan kemudian membuka buku kerja kosong baru.
2. Pada menu alat , titikmakro, dan kemudian klik Visual BasicEditor.
3. Masukkan menu, klikUserForm untuk memasukkan UserForm di buku kerja Anda.
4. Menambah kontrol SpinButton UserForm.
5. Menambahkan kontrol teks untuk UserForm.
6. Klik dua kali SpinButton kontrol toopen jendela kode untuk SpinButton kontrol.
7. Di jendela kode, ketik kode berikut untuk SpinButton1 SpinUp peristiwa:
PrivateSubSpinButton1_SpinUp()
TextBox1.Text=DateValue(TextBox1.Text)+1
EndSub
PrivateSubSpinButton1_SpinDown()
TextBox1.Text=DateValue(TextBox1.Text)1
EndSub
9. Di jendela kode, ketik kode berikut ini untuk Menginisialisasi UserForm peristiwa:
PrivateSubUserForm_Initialize()
TextBox1.Text=Date
EndSub
RefEdit kontrol
Kontrol RefEdit meniru perilaku kotak referensi yang dibuat ke Excel. Anda dapat menggunakan nilai
properti untuk mendapatkan alamat sel yang disimpan di RefEdit kontrol.
Bagaimana cara mengisi kisaran sel yang didasarkan pada kisaran yang dipilih dengan
menggunakan RefEdit kontrol
Untuk menggunakan RefEdit kontrol untuk mengisi sel, ikuti langkahlangkah berikut:
1. Memulai Excel, dan kemudian membuka buku kerja kosong baru.
2. Pada menu alat , titikmakro, dan kemudian klik Visual BasicEditor.
3. Masukkan menu, klikUserForm untuk memasukkan UserForm di buku kerja Anda.
4. Menambah RefEdit kontrol UserForm.
5. Menambah kontrol CommandButton UserForm.
6. Klik dua kali CommandButton kontrol toopen jendela kode untuk CommandButton kontrol.
7. Di jendela kode, ketik kode berikut untuk Klik CommandButton1 peristiwa:
PrivateSubCommandButton1_Click()
DimMyRangeAsString
MyRange=RefEdit1.Value
Range(MyRange).Value="test"
UnloadMe
EndSub
RefEdit kontrol
Tujuan gambar kontrol adalah untuk menampilkan gambar di UserForm. Untuk menetapkan gambar ke
control gambar saat menjalankan, gunakan fungsi LoadPicture .
Bagaimana cara mengisi kisaran sel yang didasarkan pada kisaran yang dipilih dengan
menggunakan RefEdit kontrol
Untuk menyisipkan gambar kontrol yang meminta Anda untuk memilih gambar yang dimuat saat Anda
mengklik kontrol gambar , ikuti langkahlangkah berikut:
1. Memulai Excel, dan kemudian membuka buku kerja kosong baru.
2. Pada menu alat , titikmakro, dan kemudian klik Visual BasicEditor.
3. Masukkan menu, klikUserForm untuk memasukkan UserForm di buku kerja Anda.
4. Menambahkan gambar kontrol pada UserForm.
5. Klik dua kali gambar kontrol untuk membuka jendela disahkan untuk kontrol gambar .
6. Di jendela kode, ketik kode berikut untuk Klik Image1 peristiwa:
PrivateSubImage1_Click()
DimfnameAsString
'DisplaytheOpendialogbox.
fname=Application.GetOpenFilename(filefilter:=_
"BitmapFiles(*.bmp),*.bmp",Title:="SelectImageToOpen")
'IfyoudidnotclickCancel...
Iffname<>"False"Then
'LoadthebitmapintotheImagecontrol.
Image1.Picture=LoadPicture(fname)
'RefreshtheUserForm.
Me.Repaint
EndIf
EndSub
Properti
ID Artikel: 829070 Tinjauan Terakhir: 06/18/2016 23:19:00 Revisi: 21.0
Berlaku bagi:
Microsoft Office Excel 2003, Microsoft Excel 2010, Microsoft Office Excel 2007, Excel 2016, Microsoft
Excel 2013
Kata kunci:
kbprogramming kbfunctions kbhowtomaster kbhowto kbmt KB829070 KbMtid
Dukungan
Keamanan
Hubungi Kami
Merek dagang
2016 Microsoft