Cara Membuat Menu yang Disesuaikan di Lembar Kerja Excel Anda melalui VBA

Bagikan sekarang:

Pita Excel dapat dimodifikasi agar sesuai dengan pekerjaan tertentu. Latihan ini membuat menu baru yang mengarahkan pengguna ke lembar tertentu yang relevan dengan tugas mereka.

Pada artikel ini, kami akan memperkenalkan cara membuat menu yang disesuaikan di lembar kerja Excel Anda, seperti ini:Buat Menu Kustomisasi Di Lembar Kerja Excel Anda

Artikel ini mengasumsikan bahwa pembaca memiliki pita Pengembang yang ditampilkan dan terbiasa dengan Editor VBA. Jika tidak, harap Google "Tab Pengembang Excel" atau "Jendela Kode Excel".

Buku catatan

Buku kerja yang akan digunakan memiliki jumlah lembar. Kami menyarankan Anda menggunakan sampel yang ada di sini. Ini terlihat seperti ini.Buku Kerja Contoh

Empat lembar pertama tidak berfungsi, digunakan dalam latihan ini untuk tujuan navigasi saja.

Lembar kelima akan menampung struktur menu yang disesuaikan khusus untuk buku kerja ini. Saat ini harus kosong kecuali untuk tombol Test.

Tambahkan Struktur Menu

Salin blok teks berikut ke sel A1 dari sheet "MenuSheet".

Level, Keterangan, Posisi / Makro, Pembagi

1, & Alat Pengguna, 10

2, Tampilkan Dasbor, Pilih Dasbor

2, Tambahkan baru,, BENAR

3, Klien, SelectClient

3, Lokasi, Pilih Lokasi

3, Manajer, SelectManager

2, Tutup, CloseFile

Format Struktur Menu

Data CSV ini berakhir di kolom A. Untuk memformatnya menjadi sel Excel individual, pilih kolom A dan gunakan 'Teks ke kolom' dalam Tab data. Pembatasnya adalah "koma".Format Itu Menjadi Sel Excel Individual

Di atas, setelah kita menambahkan kode yang sesuai, akan memberi kita struktur menu berbasis level di sebelah kiri.Struktur Menu Berbasis Level

Tingkat pertama, dalam latihan ini, adalah arbitrari ditempatkan sebagai item kesepuluh pada bilah menu, seperti yang akan Anda lihat ketika lebar penuh buku kerja ditampilkan.

Membuat dan Menghancurkan Menu

Karena kami hanya menginginkan menu baru untuk buku kerja khusus ini, kami akan membuat dan menghancurkannya saat membuka dan menutup buku kerja.

Kode di bawah ini adalah sebagaitart. Ini akan dipicu saat buku kerja dibuka atau ditutup. Salin ke modul di buku kerja Anda

Tetapkan tombol Test pada MenuSheet ke Auto_Open.

Option Explicit

Sub auto_Open()
    Call DeleteMenu
    Call CreateMenu
 End Sub
 
Sub auto_Close()
    Call DeleteMenu
End Sub

Di bawah ini, kami memeriksa struktur menu kami lebih dekat.Periksa Struktur Menu Kami Lebih Dekat

Tidak ada makro yang dipicu oleh Add New karena tidak memiliki fungsi selain sebagai induk dari sub menu.

Struktur menu semacam ini mudah dirawat. Cukup tambahkan item baru dengan makronya, perhatikan menu Level.

Kode

Tambahkan kode VBA berikut ke modul. Ini akan memeriksa "MenuSheet" dan membuat menu yang disesuaikan.

Sub CreateMenu()
'   Called from Auto_Open. 'NOTE: There is no error handling in this subroutine
    Dim MenuSheet As Worksheet
    Dim MenuObject As CommandBarPopup

    Dim MenuItem As Object
    Dim SubMenuItem As CommandBarButton
    Dim sRow As Integer
    Dim MenuLevel, NextLevel, PositionOrMacro, Caption, Divider

    Set MenuSheet = ThisWorkbook.Sheets("MenuSheet")
    Call DeleteMenu

    sRow = 2 '   start row
    
'   Add menus using the structure as per the MenuSheet
    Range("A" & sRow).Select
    Do While ActiveCell > "" '****************
        With MenuSheet
            MenuLevel = .Cells(sRow, 1)
            Caption = .Cells(sRow, 2)
            PositionOrMacro = .Cells(sRow, 3)
            Divider = .Cells(sRow, 4)
            NextLevel = .Cells(sRow + 1, 1)
        End With
        
        Select Case MenuLevel
            Case 1 ' Add the top-level menu to the Worksheet CommandBar
                Set MenuObject = Application.CommandBars(1). _
                    Controls.Add(Type:=msoControlPopup, _
                    Before:=PositionOrMacro, _
                    Temporary:=True)
                MenuObject.Caption = Caption
            Case 2 ' A Menu Item
                If NextLevel = 3 Then
                    Set MenuItem = MenuObject.Controls.Add(Type:=msoControlPopup)
                Else
                    Set MenuItem = MenuObject.Controls.Add(Type:=msoControlButton)
                    MenuItem.OnAction = PositionOrMacro
                End If
                MenuItem.Caption = Caption
                If Divider Then MenuItem.BeginGroup = True
            Case 3 ' A SubMenu Item
                Set SubMenuItem = MenuItem.Controls.Add(Type:=msoControlButton)
                SubMenuItem.Caption = Caption
                SubMenuItem.OnAction = PositionOrMacro
                
                If Divider Then SubMenuItem.BeginGroup = True
        End Select
        sRow = sRow + 1
        Range("A" & sRow).Select '***************************************
    Loop
    Sheets("Dashboard").Activate
End Sub

Sub DeleteMenu()
'   This sub will be executed when the workbook is closing
    Dim MenuSheet As Worksheet
    Dim sRow As Integer
    Dim Caption As String
    
    On Error Resume Next
    Set MenuSheet = ThisWorkbook.Sheets("MenuSheet")
    sRow = 2
    Range("A" & sRow).Select
    Do While ActiveCell > ""
        If MenuSheet.Cells(sRow, 1) = 1 Then
            Caption = MenuSheet.Cells(sRow, 2)
            Application.CommandBars(1).Controls(Caption).Delete
        End If
        sRow = sRow + 1
        Range("A" & sRow).Select
    Loop
   
    On Error GoTo 0
End Sub

Sub SelectDashboard()
    Sheets("Dashboard").Activate
End Sub
Sub SelectClient()
    Sheets("Client").Activate
End Sub

Sub SelectLocation()
    Sheets("Location").Activate
End Sub

Sub SelectManager()
    Sheets("Manager").Activate
End Sub

Sub CloseFile()
    MsgBox "Close! (write your own code in the module)"
End Sub

Uji kode dengan tombol Test. Menu pengguna yang baru dibuat akan ditemukan di posisi menu 10, di bawah Add-in.

Pemulihan Excel

Excel kadang-kadang tidak stabil, dan crash saat dibuka, merusak file sumber. Jika gagal memulihkan file, sebaiknya memiliki alat untuk memperbaikinya Kerusakan Excel jika tidak, semua pekerjaan yang tidak didukung akan lost.

Pengantar Penulis:

Felix Hooker adalah pakar pemulihan data di DataNumen, Inc., yang merupakan pemimpin dunia dalam teknologi pemulihan data, termasuk memperbaiki rar dan produk perangkat lunak pemulihan sql. Untuk informasi lebih lanjut kunjungi www.datanumen.com

Bagikan sekarang:

Komentar ditutup.