Cara Menyesuaikan Menu Pintasan Excel 2016 dalam VBA

Cara Menyesuaikan Menu Pintasan Excel 2016 dalam VBA

Sebelum Excel 2007, pengaturcara VBA menggunakan objek CommandBar untuk mencipta menu tersuai, bar alat tersuai dan menu pintasan tersuai (klik kanan). Bermula dengan Excel 2007, objek CommandBar berada dalam kedudukan yang agak ganjil. Jika anda menulis kod untuk menyesuaikan menu atau bar alat, Excel memintas kod itu dan mengabaikan banyak arahan anda.

Daripada memaparkan peningkatan antara muka yang difikirkan dengan baik, Excel 2007 (seperti versi kemudian) hanya membuang menu dan bar alat tersuai anda ke dalam tab Reben yang dinamakan Add-Ins.

Penyesuaian menu dan bar alat berakhir dalam Add-Ins → Menu Commands atau kumpulan Add-Ins → Custom Toolbars. Tetapi menyesuaikan menu pintasan (yang juga menggunakan objek CommandBar) masih berfungsi seperti biasa - baiklah.

Pokoknya? Objek CommandBar tidak begitu berguna lagi, tetapi ia kekal sebagai satu-satunya cara untuk menyesuaikan menu pintasan.

Menambah item baharu pada menu pintasan Sel

Di bawah, anda akan menemui kod sampel yang menambah item baharu pada menu pintasan yang muncul apabila anda mengklik kanan sel. Anda seharusnya dapat menyesuaikan contoh ini dengan keperluan anda.

Anda boleh meningkatkan sedikit utiliti Change Case dengan menyediakannya daripada menu pintasan Sel.

Prosedur AddToShortcut menambah item menu baharu pada menu pintasan Sel. Anda boleh menyesuaikannya untuk menunjuk ke makro anda sendiri dengan menukar sifat Kapsyen dan OnAction bagi objek bernama NewControl.

Sub AddToShortCut()
  Malapkan Bar Sebagai CommandBar
  Malapkan NewControl Sebagai CommandBarButton
  DeleteFromShortcut
  Set Bar = Application.CommandBars("Sel")
  Tetapkan NewControl = Bar.Controls.Add _
     (Jenis:=msoControlButton, ID:=1, _
     sementara: = Benar)
  Dengan NewControl
    .Kapsyen = "&Tukar Kes"
    .OnAction = "ChangeCase"
    .Gaya = msoButtonIconAndCaption
  Tamat Dengan
Tamat Sub

Apabila anda mengubah suai menu pintasan, pengubahsuaian itu kekal berkuat kuasa sehingga anda memulakan semula Excel. Dalam erti kata lain, menu pintasan yang diubah suai tidak menetapkan semula sendiri apabila anda menutup buku kerja yang mengandungi kod VBA. Oleh itu, jika anda menulis kod untuk mengubah suai menu pintasan, anda hampir selalu menulis kod untuk membalikkan kesan pengubahsuaian anda.

Prosedur DeleteFromShortcut mengalih keluar item menu baharu daripada menu pintasan Sel:

Sub DeleteFromShortcut()
  Pada Ralat Resume Seterusnya
  Application.CommandBars("Sel").Controls _
    (“&Tukar Kes”).Padam
Tamat Sub

Ini menunjukkan cara item menu baharu dipaparkan selepas anda mengklik kanan sel.

Cara Menyesuaikan Menu Pintasan Excel 2016 dalam VBA

Menu pintasan Sel menunjukkan item menu tersuai: Tukar Kes.

Perintah sebenar pertama selepas pengisytiharan beberapa pembolehubah memanggil prosedur DeleteFromShortcut. Kenyataan ini memastikan bahawa hanya satu item menu Change Case muncul pada menu Sel pintasan. Cuba ulas baris itu (letak tanda kutip di permulaan baris) dan jalankan prosedur beberapa kali — tetapi jangan terbawa-bawa!

Klik kanan pada sel dan anda boleh melihat berbilang contoh item menu Change Case. Buang semua entri dengan menjalankan DeleteFromShortcut beberapa kali (sekali untuk setiap item menu tambahan).

Akhir sekali, anda memerlukan cara untuk menambah item menu pintasan apabila buku kerja dibuka dan untuk memadam item menu apabila buku kerja ditutup. Melakukan ini adalah mudah. Hanya tambahkan dua prosedur acara ini pada modul kod ThisWorkbook:

Sub Buku Kerja Peribadi_Buka()
Panggil AddToShortCut
Tamat Sub
Sub Buku Kerja Peribadi_BeforeClose(Batalkan Sebagai Boolean)
Panggil DeleteFromShortcut
Tamat Sub

Prosedur Workbook_Open dilaksanakan apabila buku kerja dibuka dan prosedur Workbook_BeforeClose dilaksanakan sebelum buku kerja ditutup. Cuma apa yang doktor suruh.

Apakah yang berbeza dalam Excel 2013 dan Excel 2016?

Jika anda telah menggunakan VBA untuk bekerja dengan menu pintasan dalam Excel 2007 atau lebih awal, anda perlu sedar tentang perubahan ketara.

Pada masa lalu, jika kod anda mengubah suai menu pintasan, pengubahsuaian itu berkuat kuasa untuk semua buku kerja. Contohnya, jika anda menambah item baharu pada menu klik kanan Sel, item baharu itu akan muncul apabila anda mengklik kanan sel dalam mana-mana buku kerja (termasuk buku kerja lain yang anda buka kemudian). Dengan kata lain, pengubahsuaian menu pintasan telah dibuat pada peringkat aplikasi .

Excel 2013 dan Excel 2016 menggunakan antara muka dokumen tunggal dan itu mempengaruhi menu pintasan. Perubahan yang anda buat pada menu pintasan hanya mempengaruhi tetingkap buku kerja yang aktif. Apabila anda melaksanakan kod yang mengubah suai menu pintasan, menu pintasan untuk tetingkap selain daripada tetingkap aktif tidak akan ditukar. Ini adalah penyimpangan radikal daripada cara perkara-perkara dahulu berfungsi.

Satu lagi twist: Jika pengguna membuka buku kerja (atau mencipta buku kerja baharu) apabila tetingkap aktif memaparkan menu pintasan yang diubah suai, buku kerja baharu juga memaparkan menu pintasan yang diubah suai. Dalam erti kata lain, tetingkap baharu memaparkan menu pintasan yang sama seperti tetingkap yang aktif semasa tetingkap baharu dibuka.

Intinya: Pada masa lalu, jika anda membuka buku kerja atau add-in yang mengubah suai menu pintasan, anda boleh yakin bahawa menu pintasan yang diubah suai akan tersedia dalam semua buku kerja. Anda tidak lagi mempunyai jaminan itu.

Cipta menu pintasan tersuai dalam Access 2007

Tetingkap reka bentuk makro adalah berbeza dalam Access 2007 berbanding dengan versi kemudian, jadi kembangkan bahagian berikut untuk diikuti jika anda menggunakan Access 2007.

Langkah 1 untuk Access 2007: Buat kumpulan makro yang mengandungi arahan menu

Dalam langkah ini, anda membuat kumpulan makro, setiap makro yang akan menjadi arahan berasingan pada menu pintasan anda.

Apakah kumpulan makro?

Kumpulan makro ialah objek makro tunggal yang mengandungi dua atau lebih makro bebas. Makro individu dikenal pasti dengan menaip nama untuk setiap makro dalam lajur Nama Makro. Dalam ilustrasi berikut,  Macro3  ialah kumpulan makro. NotFoundMsg  dan  FoundMsg  ialah makro individu dalam kumpulan, setiap makro terdiri daripada dua tindakan makro.

Contoh kumpulan makro

Nota:  Lajur  Nama Makro  disembunyikan secara lalai. Untuk memaparkan  lajur Nama Makro  , pada  tab Reka Bentuk  , dalam  kumpulan Tunjukkan/Sembunyikan  , klik  Nama Makro .

  1. Pada  tab Cipta  , dalam  kumpulan Lain  , klik  Makro . Jika arahan ini tidak tersedia, klik anak panah di bawah sama ada  butang Modul  atau  Modul Kelas  , dan kemudian klik  Makro .

  2. Pada  tab Reka Bentuk  , dalam  kumpulan Tunjukkan/Sembunyikan  , klik  Nama Makro  untuk memaparkan  lajur Nama Makro  .

  3. Untuk setiap arahan yang anda inginkan pada Menu Pintasan tersuai anda:

    • Dalam  lajur Nama Makro  , masukkan teks yang anda mahu paparkan pada menu pintasan (contohnya, "Cetak laporan" atau "Simpan").

      Nota:  Untuk mencipta kunci akses supaya anda boleh menggunakan papan kekunci untuk memilih arahan, taip ampersand (&) sebelum huruf yang anda mahu menjadi kunci akses dalam nama arahan (contohnya, "&Simpan"). Surat ini akan digariskan pada menu.
    • Dalam  lajur Tindakan  , pilih tindakan pertama yang anda ingin lakukan apabila anda mengklik arahan pada menu pintasan.

    • Jika terdapat lebih banyak tindakan yang anda ingin lakukan apabila anda memilih arahan ini, tambahkannya pada baris berikutnya. Untuk setiap tindakan seterusnya, biarkan  sel Nama Makro  kosong.

      Nota:  Untuk membuat garisan antara dua arahan menu, taip tanda sempang (-) dalam  lajur Nama Makro  antara arahan menu yang sesuai.
  4. Simpan dan namakan makro, sebagai contoh,   mcrShortcutMenuCommands .

Ilustrasi berikut menunjukkan contoh kumpulan makro untuk menu tersuai atau menu pintasan.

Kumpulan makro menu dalam paparan Reka bentuk

Langkah 2 untuk Access 2007: Cipta makro yang mencipta menu

Langkah ini mungkin kelihatan berlebihan, tetapi untuk mencipta menu pintasan daripada kumpulan makro yang anda buat dalam Langkah 1, anda mesti mencipta makro kedua yang mengandungi  tindakan makro AddMenu  . Makro ini kadangkala dipanggil "makro menu".

  1. Pada  tab Cipta  , dalam  kumpulan Lain  , klik  Makro . Jika arahan ini tidak tersedia, klik anak panah di bawah sama ada  butang Modul  atau  Modul Kelas  , dan kemudian klik  Makro .

  2. Pada baris pertama makro, pilih  AddMenu  dalam  senarai Tindakan  .

  3. Di bawah  Argumen Tindakan , dalam  kotak Nama Menu  , taip nama menu (contohnya, "Laporkan Perintah"). Argumen ini tidak diperlukan, tetapi disyorkan jika, dalam Langkah 3, anda merancang untuk menambah menu pada tab Reben (seperti  tab Tambah Dalam  borang atau laporan). Jika menu ditambah sebagai menu pintasan dalam Langkah 3,  argumen Nama Menu  diabaikan.

  4. Dalam  kotak Nama Makro Menu  , masukkan nama makro yang anda buat dalam Langkah 1.

  5. Simpan dan namakan makro, contohnya,  mcrAddShortcutMenu .

Ilustrasi berikut menunjukkan contoh makro menu yang mencipta menu yang kami reka dalam Langkah 1.

Makro menu dalam paparan Reka bentuk

Langkah 3 untuk Access 2007: Lampirkan menu pada kawalan, borang, laporan atau pangkalan data

Bergantung pada tempat anda mahu menu muncul, gunakan satu atau lebih prosedur berikut.

  • Tambahkan menu pada tab Tambah dalam borang atau laporan

    Gunakan prosedur ini jika anda mahu menu muncul pada  tab Add-In  untuk borang atau laporan tertentu, seperti yang ditunjukkan dalam ilustrasi berikut:

    Tab Add-In yang mengandungi menu tersuai

    1. Dalam Anak Tetingkap Navigasi, klik kanan borang atau laporan di mana anda mahu menu dipaparkan, dan kemudian klik  Paparan Reka Bentuk .

    2. Pada  tab Reka Bentuk  , dalam  kumpulan Tunjukkan/Sembunyikan  , klik  Helaian Harta .

    3. Pilih keseluruhan objek dengan memilih  Borang  atau  Laporan  daripada senarai di bahagian atas anak tetingkap tugas Helaian Harta.

    4. Pada  tab Lain  pada Helaian Harta, dalam  kotak sifat Menu Pintasan  , taip nama makro yang anda buat dalam Langkah 2 (dalam contoh ini, "mcrAddShortcutMenu").

      Pada kali seterusnya anda membuka borang atau laporan,  tab Tambah-Masuk  muncul dalam Reben. Klik tab untuk melihat menu.

      Untuk mendapatkan maklumat lanjut tentang teknik penyesuaian reben, seperti menambah tab tersuai atau menyembunyikan tab lalai, lihat artikel  Cipta reben tersuai dalam Access .

      Ribbon ialah komponen antara muka pengguna Microsoft Office Fluent.

  • Tambahkan menu sebagai menu pintasan untuk borang, laporan atau kawalan

    Gunakan prosedur ini jika anda mahu menu muncul apabila anda mengklik kanan borang, laporan atau kawalan tertentu, seperti yang ditunjukkan dalam ilustrasi berikut:

    Menu pintasan mudah

    1. Dalam Anak Tetingkap Navigasi, klik kanan borang atau laporan yang anda mahu menu pintasan dipaparkan dan kemudian klik  Paparan Reka Bentuk .

    2. Pada  tab Reka Bentuk  , dalam  kumpulan Tunjukkan/Sembunyikan  , klik  Helaian Harta .

    3. Pilih kawalan atau objek yang anda ingin lampirkan menu pintasan.

      Nota:  Untuk memilih keseluruhan objek, pilih  Borang  atau  Laporan  daripada senarai di bahagian atas anak tetingkap tugas Helaian Harta.

    4. Pada  tab Lain  pada Helaian Harta, dalam  kotak sifat Bar Menu Pintasan  , taip nama makro yang anda buat dalam Langkah 2 (dalam contoh ini, "mcrAddShortcutMenu").

  • Tambahkan menu sebagai menu pintasan global

    Prosedur ini menggantikan semua menu pintasan lalai dalam pangkalan data semasa. Menu pintasan tersuai yang telah anda lampirkan pada borang, laporan atau kawalan tertentu tidak terjejas.

    1. Klik  Butang Microsoft Office  dan kemudian klik  Pilihan Akses .

    2. Dalam  kotak dialog Opsyen Akses  , klik  Pangkalan Data Semasa .

    3. Di bawah  Pilihan Reben dan Bar Alat , dalam  kotak Bar Menu Pintasan  , taip nama makro yang anda buat dalam Langkah 2 (dalam contoh ini, "mcrAddShortcutMenu").

  • Menu pintasan tersuai menggantikan menu pintasan lalai untuk objek yang dilampirkan. Jika anda ingin mengekalkan arahan Access tertentu untuk digunakan pada menu ini, gunakan  tindakan RunCommand  untuk meletakkan arahan ke dalam kumpulan makro untuk menu yang anda mahukan.

  • Menu pintasan tersuai yang dilampirkan pada kawalan menggantikan mana-mana menu pintasan tersuai lain yang ditakrifkan dalam pangkalan data. Menu pintasan tersuai yang dilampirkan pada borang atau laporan menggantikan menu pintasan global tersuai.

  • Apabila anda menentukan makro menu untuk borang atau laporan atau untuk pangkalan data, Access menjalankan makro menu ini apabila borang, laporan atau pangkalan data dibuka. Jika anda membuat perubahan pada makro menu atau kumpulan makro yang mentakrifkan arahannya semasa borang, laporan atau pangkalan data dibuka, anda mesti menutup borang, laporan atau pangkalan data dan membukanya semula untuk melihat perubahan.

  • Untuk mencipta submenu, ikuti Langkah 1 untuk mencipta kumpulan makro berasingan yang mengandungi hanya perintah submenu. Kemudian, ikuti Langkah 1 sekali lagi untuk menentukan arahan untuk menu peringkat lebih tinggi. Tambahkan submenu sebagai item dalam kumpulan makro peringkat lebih tinggi dengan menggunakan  tindakan makro AddMenu  . Ilustrasi berikut menunjukkan kumpulan makro untuk menu yang mengandungi submenu, dan kemudian menunjukkan menu pintasan yang terhasil. Baris ketiga dalam kumpulan makro mencipta  submenu Eksport Ke...  ( mcrSubMenu ).

    Menu pintasan yang mengandungi submenu

    Anda boleh membuat berbilang peringkat submenu dengan menggunakan  tindakan AddMenu  dalam kumpulan makro untuk setiap peringkat menu. Pastikan anda membekalkan nilai untuk  argumen Nama Menu  untuk setiap  tindakan AddMenu  , jika tidak, submenu akan muncul sebagai baris kosong dalam menu peringkat lebih tinggi.

  • Keadaan makro disokong dalam makro menu peringkat atas sahaja. Dalam erti kata lain, anda boleh menggunakan syarat dalam makro menu untuk menentukan sama ada menu atau menu pintasan tertentu akan dipaparkan, tetapi hanya untuk menu di peringkat atas. Anda tidak boleh menggunakan syarat untuk memaparkan atau menyembunyikan arahan atau submenu pada menu. Anda juga boleh menggunakan syarat untuk menyembunyikan atau menunjukkan menu pintasan tersuai atau menu pintasan global.

  • Secara pilihan, makro menu yang anda buat dalam Langkah 2 boleh menjadi sebahagian daripada kumpulan makro. Contohnya, jika anda mempunyai beberapa menu pintasan untuk objek atau kawalan yang berbeza, anda boleh mencipta satu objek makro yang mengandungi semua makro menu yang diperlukan. Pastikan anda memaparkan  lajur Nama Makro  dan taipkan nama unik untuk setiap makro. Dalam Langkah 3, gunakan tatatanda berikut untuk merujuk kepada makro:  macrogroupname.macronaname . Contohnya,  mcrAddShortcutMenus.AddMenu2 .


Lembaran Pintar 9.1.1

Lembaran Pintar 9.1.1

Smartsheet ialah platform kerja dinamik yang membolehkan anda mengurus projek, membina aliran kerja dan bekerjasama dengan pasukan anda.

SharePoint

SharePoint

SharePoint ialah sistem kerjasama berasaskan web yang menggunakan pelbagai aplikasi aliran kerja, pangkalan data "senarai" dan komponen web lain, serta ciri keselamatan untuk memberi kawalan kepada Kumpulan perniagaan bekerjasama.

Kalendar Kekal 1.0.38/1.0.36

Kalendar Kekal 1.0.38/1.0.36

Kalendar Van Nien ialah aplikasi melihat kalendar pada telefon anda, membantu anda melihat tarikh lunisolar dengan cepat pada telefon anda, sekali gus mengatur kerja penting anda.

Microsoft Outlook 2021

Microsoft Outlook 2021

Microsoft Outlook ialah aplikasi perniagaan dan produktiviti yang dibangunkan oleh Microsoft Corporation.

ClickUp

ClickUp

ClickUp ialah salah satu platform produktiviti yang dinilai tertinggi untuk mana-mana perniagaan. Perniagaan besar seperti Google, Booking.com, San Diego Padres dan Uber semuanya menggunakan ClickUp untuk meningkatkan produktiviti tempat kerja.

PDF-XChange Viewer 2.5.322.10

PDF-XChange Viewer 2.5.322.10

PDF telah menjadi format yang biasa digunakan untuk membaca, mencipta dan menghantar dokumen teks. Seterusnya, terdapat peningkatan dalam bilangan program yang digunakan untuk jenis dokumentasi ini. PDF-XChange Viewer ialah antara jumlah penonton PDF yang semakin meningkat.

Apache OpenOffice

Apache OpenOffice

Apache OpenOffice menawarkan suite lengkap aplikasi Office yang menyaingi Microsoft 365, terutamanya dalam Excel, PowerPoint dan Word. Ia membolehkan anda mengurus projek anda dengan lebih berkesan, dan menyokong beberapa format fail.

Muat turun iTaxviewer 1.8.7

Muat turun iTaxviewer 1.8.7

Perisian iTaxViewer ialah perisian membaca fail XML yang paling popular hari ini. Perisian ini adalah aplikasi untuk membaca pengisytiharan cukai elektronik dalam format XML Jabatan Percukaian Am.

Pembaca PDF Nitro

Pembaca PDF Nitro

Nitro PDF Reader ialah editor PDF berguna yang merangkumi semua tugas asas yang kebanyakan orang lakukan setiap hari dengan dokumen PDF.

Pembaca Foxit 12

Pembaca Foxit 12

Foxit Reader terutamanya pembaca PDF, dan juga membolehkan anda membuat fail PDF, menandatanganinya, mengeditnya dan menambah anotasi. Ia berfungsi pada sistem pengendalian, terdapat pemalam untuk pelbagai program daripada pakej Microsoft Office.