มีวิธีจับ HotKeys / Shortcuts ใน Excel VSTO โดยใช้เพียง C # และไม่มี VBA หรือไม่

ดังนั้นฉันจึงต้องการบันทึกคำสั่งคีย์บางส่วนในส่วนเสริม Excel VSTO ระดับเอกสารของเรา ดูเหมือนฉันจะหาวิธีทำไม่ได้ นอกจากใช้ VBA และให้ Addin พูดคุยกับ VBA ความช่วยเหลือ / ตัวอย่างใด ๆ ที่จะได้รับการชื่นชมอย่างมาก

ฉันใช้ Excel 2007


person Phobis    schedule 19.02.2010    source แหล่งที่มา
comment
ทีมสนับสนุนการพัฒนา Visual Studio Office (VSOD) ได้เขียนบทความเกี่ยวกับสิ่งนี้: blogs.msdn.com/b/vsod/archive/2010/04/08/   -  person Michael Zlatkovsky - Microsoft    schedule 05.03.2013


คำตอบ (2)


คุณสามารถทำได้ผ่านการเรียก API ไปยังคลาสย่อย Excel และดูคำสั่งหลักเท่านั้น นี่คือ เก่ากว่าแต่ก็ยังใช้อยู่

person Todd Main    schedule 21.02.2010
comment
ลิงก์เสีย - person Leo Gurdian; 19.07.2016

  1. วิธีหนึ่งเกี่ยวข้องกับการใช้โซลูชันของบุคคลที่สามจาก Addin-Express ผลิตภัณฑ์ของพวกเขารวมถึงความสามารถในการเพิ่มแป้นพิมพ์ลัดเป็นคุณสมบัติให้กับคำสั่งเมนู Ribbon

  2. อีกวิธีหนึ่งคือการใช้ hooks ของแป้นพิมพ์ระดับต่ำผ่านทาง Win32 API บางตัวซึ่งโดยทั่วไปเรียกว่า คลาสย่อยของ windows นี่คือคำอธิบายที่ดีเยี่ยมพร้อมตัวอย่างโค้ดเกี่ยวกับวิธีการดำเนินการ โปรดทราบว่าสิ่งเดียวที่ "พิเศษ" ที่คุณต้องทำเพื่อให้โค้ดนี้เป็น "ทำงาน" ใน VSTO คือการย้ายวิธี SetHook() ไปยังเหตุการณ์ Startup และวิธี UnhookWindowsHookEx() ไปยังเหตุการณ์ Shutdown

    ดูบทความเกี่ยวกับ MSDN ที่นี่โดย Stephen Toub< /ก>

  3. ในที่สุดก็มีการใช้คุณสมบัติ OnAction ของคลาส Addin วิธีนี้ต้องใช้ VBA บางอย่าง (ในแง่ของวิธีการโทรกลับที่ชี้กลับไปยัง .net addin พื้นฐาน) และใช้งานได้ตราบใดที่คุณยินดีที่จะแจกจ่าย VBA บางส่วนในโซลูชันของคุณ ( เช่น xls หรือ doc พร้อมโปรเจ็กต์ vba หรืออาจเป็น Addin แบบเนทีฟ) โปรดทราบว่าคุณจะต้องทำเครื่องหมาย comvisible = true และเปิดเผยวิธีการ GetAutomationServiceObject เพื่อให้ VBA ของคุณสามารถอ้างอิง Addin ของคุณจากโค้ด VBA

    ดูที่นี่สำหรับชุดข้อความ บนนั้น...

person Anonymous Type    schedule 25.05.2010
comment
ดูเหมือนว่าลิงก์ Geoff Darst จะใช้งานได้อีกต่อไป มีความคิดที่จะหาบทความนั้นได้ที่ไหนตอนนี้? ขอบคุณ! - person Michael Zlatkovsky - Microsoft; 05.03.2013
comment
@ MichaelZlatkovsky-Microsoft ดูลิงก์นี้จาก narkive: microsoft.public.vsnet.vstools.office.narkive.com/a5kXwA4E/ - person Ricardo; 19.10.2017