Apakah ada cara untuk menangkap HotKeys/Pintasan di Excel VSTO hanya menggunakan C# dan tanpa VBA?

Jadi saya ingin menangkap beberapa perintah kunci di addin Excel VSTO tingkat Dokumen kami. Sepertinya saya tidak dapat menemukan cara untuk melakukannya, selain menggunakan VBA dan meminta addin kami berbicara dengan VBA. Bantuan/contoh apa pun akan sangat dihargai.

Saya menggunakan Excel 2007.


person Phobis    schedule 19.02.2010    source sumber
comment
Tim Dukungan Visual Studio Office Development (VSOD) telah menulis artikel tentang ini: blogs.msdn.com/b/vsod/archive/2010/04/08/   -  person Michael Zlatkovsky - Microsoft    schedule 05.03.2013


Jawaban (2)


Anda hanya dapat melakukan ini melalui panggilan API ke subkelas Excel dan memperhatikan perintah utama. Ini adalah lebih tua, tapi masih berlaku.

person Todd Main    schedule 21.02.2010
comment
tautannya rusak - person Leo Gurdian; 19.07.2016

  1. Salah satu metodenya melibatkan penggunaan solusi pihak ketiga dari Addin-Express. Produk mereka mencakup kemampuan untuk menambahkan pintasan keyboard sebagai properti ke perintah menu pita.

  2. Cara lainnya adalah dengan memanfaatkan kait keyboard tingkat rendah, melalui beberapa API Win32 yang umumnya disebut sebagai subkelas windows. Berikut ini penjelasan yang sangat bagus dengan contoh kode tentang cara melakukannya. Perhatikan bahwa satu-satunya hal "ekstra" yang perlu Anda lakukan agar kode ini "berfungsi" di VSTO adalah memindahkan metode SetHook() ke acara Startup, dan metode UnhookWindowsHookEx() ke acara Shutdown.

    Lihat artikel tentang MSDN di sini oleh Stephen Toub.

  3. Terakhir adalah penggunaan properti OnAction dari kelas Addin. Metode ini memerlukan penggunaan beberapa VBA (dalam istilah metode panggilan balik yang menunjuk kembali ke addin .net yang mendasarinya), dan berfungsi dengan baik selama Anda bersedia mendistribusikan beberapa VBA dalam solusi Anda ( yaitu proyek xls atau doc ​​dengan vba, atau mungkin addin asli). Catatan Anda juga perlu menandai comvisible = true, dan mengekspos metode GetAutomationServiceObject sehingga VBA Anda dapat mereferensikan addin Anda dari kode VBA.

    lihat di sini untuk thread di atasnya...

person Anonymous Type    schedule 25.05.2010
comment
Sepertinya tautan Geoff Darst sekarang berfungsi lagi. Adakah yang tahu di mana menemukan artikel itu sekarang? Terima kasih! - person Michael Zlatkovsky - Microsoft; 05.03.2013
comment
@MichaelZlatkovsky-Microsoft Lihat tautan ini dari narkive : microsoft.public.vsnet.vstools.office.narkive.com/a5kXwA4E/ - person Ricardo; 19.10.2017