Halaman

Jumat, 21 Desember 2012

Cara menggunakan Visual Basic for Applications (VBA) untuk mengubah UserForms dalam Excel

Artikel ini menjelaskan cara mengubah UserForms pemrograman di Microsoft Excel. Mencakup contoh dan Microsoft Visual Basic untuk macro Applications (VBA) yang menunjukkan kepada Anda bagaimana untuk mengambil keuntungan dari kemampuan UserForms dan bagaimana menggunakan kontrol 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, acara Klik dan Hentikan acara. Satu atau lebih dari contoh berikut menunjukkan cara menggunakan setiap kontrol ActiveX ™ berikut di UserForm:
  • Label kontrol
  • Kontrol TextBox
  • Control CommandButton ke atas
  • ListBox DNS
  • Kontrol ComboBox
  • Kontrol frame
  • Kontrol OptionButton
  • Kotak centang kontrol
  • Kontrol ToggleButton
  • Kontrol TabStrip
  • Kontrol multiPage
  • Kontrol ScrollBar
  • Kontrol SpinButton
  • RefEdit kontrol
  • Gambar kontrol

    Dasar-dasar UserForm

    Cara menampilkan UserForm

    Sintaks yang digunakan untuk menampilkan UserForm pemrograman adalah sebagai berikut:
    UserFormName.Tampilkan
    Untuk menampilkan UserForm yang bernama UserForm1, gunakan kode berikut:
    UserForm1.Show
    Anda dapat memuat UserForm ke memori tanpa benar-benar menampilkan itu. Mungkin diperlukan UserForm kompleks beberapa detik untuk muncul. Karena Anda dapat preload UserForm ke memori, Anda dapat memutuskan kapan harus dikenakan overhead ini. Untuk memuat UserForm1 ke dalam 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 dalam Basis Pengetahuan Microsoft:
    213747 XL2000: Bagaimana untuk beralih antara kustom UserForms dengan tombol perintah

    Bagaimana menghapus UserForm dari memori

    Untuk menghapus UserForm dari memori, menggunakan pernyataan membongkar . Untuk membongkar UserForm yang bernama UserForm1, gunakan kode berikut:
    Unload UserForm1
    Jika Anda membongkar UserForm di acara prosedur yang dikaitkan dengan UserForm atau itulah dikaitkan dengan kontrol pada UserForm (misalnya, mengklik control CommandButton ke atas ), Anda dapat menggunakan kata kunci "Me" bukan nama UserForm. Untuk menggunakan "Me" kata kunci untuk membongkar UserForm, gunakan kode berikut:
    Unload Me

    Bagaimana menggunakan peristiwa-peristiwa UserForm

    UserForms mendukung banyak peristiwa standar yang Anda dapat melampirkan prosedur VBA untuk. Ketika peristiwa terjadi, menjalankan prosedur yang Anda terpasang ke acara. Tindakan yang dilakukan oleh pengguna dapat memulai beberapa kegiatan. Di antara yang paling sering digunakan peristiwa untuk UserForm adalah acara menginisialisasi , acara Klik dan Hentikan acara.

    Catatan Modul Visual Basic yang berisi acara prosedur dapat disebut sebagai modul "di belakang" UserForm. Modul yang berisi acara prosedur tidak terlihat dalam koleksi modul proyek Microsoft Explorer jendela Editor Visual Basic. Anda harus klik dua kali tubuh UserForm untuk melihat kode UserForm modul.

    Bagaimana untuk menjebak UserForm peristiwa

    Untuk menjebak UserForm peristiwa, ikuti langkah berikut:
  • Buat buku kerja baru di Excel.
  • Pada alat menu, titik makro, dan kemudian klik Visual Basic Editor.
  • Masukkan menu, klik UserForm untuk memasukkan UserForm di buku kerja Anda.
  • Klik dua kali UserForm untuk menampilkan jendela kode untuk UserForm.
  • Dalam modul, ketik kode berikut:
    Private Sub UserForm_Click()
    
        Me.Height = Int(Rnd * 500)
        Me.Width = Int(Rnd * 750)
    
    End Sub
    
    Private Sub UserForm_Initialize()
    
        Me.Caption = "Events Events Events!"
        Me.BackColor = RGB(10, 25, 100)
    
    End Sub
    
    Private Sub UserForm_Resize()
    
        msg = "Width: " & Me.Width & Chr(10) & "Height: " & Me.Height
        MsgBox prompt:=msg, Title:="Resize Event"
    
    End Sub
    
    
    Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
    
        msg = "Now Unloading " & Me.Caption
        MsgBox prompt:=msg, Title:="QueryClose Event"
    
    End Sub
    
    Private Sub UserForm_Terminate()
    
        msg = "Now Unloading " & Me.Caption
        MsgBox prompt:=msg, Title:="Terminate Event"
    
    End Sub
  • 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 klik 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 yang Anda berikan 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 memori dan caption UserForm kembali ke keadaan semula.

Bagaimana mencegah UserForm ditutup dengan menggunakan tombol tutup

Ketika Anda menjalankan UserForm, tombol Tutup ditambahkan ke sudut kanan atas jendela UserForm. Jika Anda ingin mencegah UserForm ditutup dengan menggunakan tombol Tutup , Anda harus perangkap QueryClose acara.

QueryClose peristiwa terjadi tepat sebelum UserForm diturunkan dari kehabisan memori. Menggunakan argumen CloseMode acara QueryClose untuk menentukan bagaimana UserForm ditutup. Nilai vbFormControlMenu untuk argumen CloseMode menunjukkan bahwa Tutuptombol tekan diklik. Untuk menjaga UserForm aktif, atur argumen membatalkan acara QueryClose ke True. Menggunakan peristiwa QueryClose untuk mencegah UserForm ditutup dengan menggunakan Tutup tombol tekan, ikuti langkah berikut:
  1. Buat buku kerja baru di Excel.
  2. Pada Alat menu, titikMakro, lalu klik Visual Basic Editor.
  3. Pada Masukkan menu, klikUserForm untuk memasukkan UserForm di buku kerja Anda.
  4. Menambah kontrol CommandButton UserForm.
  5. klik ganda UserForm untuk menampilkan Jendela kode untuk UserForm.
  6. Dalam jendela kode, ketik kode berikut:
    Private Sub CommandButton1_Click()
    
        Unload Me
    
    End Sub
    
    Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
    
        IF CloseMode = vbFormControlMenu Then
            Cancel = True
            Me.Caption = "Click the CommandButton to close Me!"
        End If
    
    End Sub
  7. 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:
207714XL2000: run-time kesalahan menggunakan UserForms koleksi
211527 XL2000: Tidak dapat menyeret UserForm kontrol ke lembar kerja
211868 XL2000: Kesalahan menjalankan makro yang memasukkan kontrol ke UserForm
213582 XL2000: Masalah ketika Anda menggunakan makro untuk menambahkan kontrol UserForm
213583 XL2000: Tidak dapat menunjukkan UserForms dalam proyek-proyek lain
213736 XL2000: Cara menentukan tombol tekan ditekan bersama dengan tombol tekan gulir dengan mouse
213744 XL2000: Bagaimana untuk sementara menyembunyikan UserForm
213747 XL2000: Bagaimana untuk bergerak di antara kustom UserForms dengan tombol tekan perintah
213749 XL2000: bagaimana untuk menggunakan UserForm untuk memasukkan data
213768 XL2000: Bagaimana untuk secara dinamis mengubah ukuran bentuk pengguna
213774 XL2000: Cara membuat layar Startup dengan UserForm

VBA kode

Untuk informasi tambahan, klik nomor artikel berikut ini untuk melihat artikel di dalam Basis Pengetahuan Microsoft:

Catatan VBA kode yang disertakan dalam artikel ini tidak berisi contoh yang mempengaruhi semua properti dan Event untuk kontrol. Jika Anda perlu, Anda dapat menggunakan jendela Properties untuk melihat daftar properti yang tersedia untuk kontrol. Untuk melihat daftar properti, di Lihat menu, klik Properties Window.

Cara menggunakan mode desain untuk mengedit kontrol

Bila Anda menggunakan Editor Visual Basic untuk merancang sebuah kotak dialog, Anda menggunakan modus desain. Dalam moda desain, Anda dapat mengedit kontrol dan Anda dapat mengubah properti kontrol pada UserForm dalam jendela properti. Untuk menampilkan jendela Properties, diLihat menu, klik Properties Window.

Catatan Kontrol tidak menanggapi peristiwa saat Anda berada di modus desain. Ketika Anda menjalankan sebuah kotak dialog untuk menampilkan cara bahwa pengguna melihatnya, program dalam dijalankan modus. Perubahan yang Anda buat ke properti kontrol dalam jangka modus 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 pemrograman tergantung pada jenis lembar modul Visual Basic di mana Anda menjalankan kode. Jika kode berjalan dari modul umum, sintaks adalah sebagai berikut:
UserFormName.Controlname.Property = Nilai
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:
UserForm1.TextBox1.Text = "Bob"
Apakah kode dalam prosedur yang dimulai oleh sebuah peristiwa kontrol atau dengan UserForm, Anda tidak harus merujuk pada nama UserForm. Sebaliknya, gunakan kode berikut:
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:

Kontrol label

Kontrol label terutama digunakan untuk menggambarkan kontrol lain pada UserForm. Sebuah kontrol Label tidak diedit oleh pengguna sementara UserForm berjalan. Menggunakan properti Caption untuk mengatur atau kembali teks pada Label kontrol. Properti lainnya sering digunakan untuk memformat sebuah kontrol Label meliputi 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 kosong baru.
  2. Pada Alat menu, titikMakro, lalu klik Visual Basic Editor.
  3. Pada Masukkan menu, klikUserForm untuk memasukkan UserForm di buku kerja Anda.
  4. Menambah kontrol Label UserForm.
  5. Menambah kontrol CommandButton UserForm.
  6. klik ganda CommandButton mengendalikan ke Buka jendela kode untuk UserForm.
  7. Dalam jendela kode, ketik kode berikut untuk acara CommandButton1 klik :
    Private Sub CommandButton1_Click()
    
        With Label1
            ' Set the text of the label.
            .Caption = "This is Label Example 1"
            ' Automatically size the label control.
            .AutoSize = True
            .WordWrap = False
            ' Set the font used by the Label control.
            .Font.Name = "Times New Roman"
            .Font.Size = 14
            .Font.Bold = True
            ' Set the font color to blue.
            .ForeColor = RGB(0, 0, 255)
        End With
    
    End Sub
  8. Pada Menjalankan menu, klik Menjalankan Sub/UserForm.
  9. Klik CommandButton.
Teks "Ini adalah Label contoh 1" muncul pada Label kontrol dalam huruf tebal kali baru Romawi dengan ukuran fon 14.

Kontrol TextBox

Item baru yang diketik di ComboBox kontrol ditambahkan ke daftar, dan daftar yang terikat kontrol ComboBox diperluas untuk mencakup sel A1:A6. .

Cara menggunakan kontrol TextBox untuk memvalidasi password

Jika Anda mengatur properti PasswordChar dari kontrol TextBox , menjadi kontrol "bertopeng-edit". Setiap karakter yang diketik di kontrol TextBox visual diganti 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 makro, dan kemudian klik Visual Basic Editor.
  3. Masukkan menu, klik UserForm untuk memasukkan UserForm di buku kerja Anda.
  4. Tambahkan kontrol TextBox untuk UserForm.
  5. Pada Lihat menu, klik Properti jendela properti agar 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 control CommandButton ke atas untuk membuka jendela kode untuk UserForm.
  9. Dalam jendela kode, ketik kode berikut untuk Klik CommandButton1 acara: :
    Private Sub CommandButton1_Click()
    
        If TextBox1.Text <> "userform" Then
            MsgBox "Password is Incorrect. Please reenter."
            TextBox1.Text = ""
            TextBox1.SetFocus
        Else
            MsgBox "Welcome!"
            Unload Me
        End If
    
    End Sub
    
    
  10. Menjalankan menu, klik Menjalankan Sub/UserForm.
  11. Ketik sandi userform kontrol TextBox . .
  12. Klik control CommandButton ke atas .

1 komentar:

  1. Pak gmna script menampilkan 2 userform yang berbeda sebelum masuk pada excel

    BalasHapus