เคยถาม คำถามนี้มาก่อนแต่ทุกครั้งที่ได้รับคำตอบเป็นเพียงการลาออกเพื่อให้คำอธิบายฟังก์ชันโดยใช้Application.MacroOptions
( VBA6 ) ( VBA7 ) แต่ข้อมูลนี้ไม่ได้ปรากฏเป็นคำแนะนำเครื่องมือดังนั้นจึงไม่สามารถแก้ปัญหาของฉันได้
เป้าหมาย
สิ่งที่เราทุกคนปรารถนาคือสามารถกำหนดฟังก์ชันที่กำหนดเองได้ด้วยวิธีการใด ๆ (VBA, VSTO หรือ COM add-in) และให้ประโยชน์แก่ผู้ใช้จากคำอธิบายป๊อปอัป / คำแนะนำเครื่องมือของฟังก์ชันและพารามิเตอร์ดังที่ ปรากฏขึ้นสำหรับทุกฟังก์ชัน Excel ในตัวไม่ว่าจะเป็นแบบอินไลน์หรือในแถบสูตร:
คำตอบที่ได้รับการยอมรับอย่างกว้างขวางสำหรับความต้องการนี้คือไม่สามารถใช้ฟังก์ชันแบบกำหนดเองได้ แต่ฉันต้องการท้าทายความเชื่อนั้น
ปัญหา
ปัจจุบันสิ่งที่ดีที่สุดที่ฉันเคยเห็นใคร ๆ ทำคือการกำหนดฟังก์ชัน (มักใช้การเรียก MacroOptions ด้านบน) ดังนั้นเมื่อเปิดกล่องโต้ตอบฟังก์ชัน (ปุ่ม fx ในแถบสูตร) คำอธิบายฟังก์ชันและพารามิเตอร์จะปรากฏดังต่อไปนี้:
อย่างที่คุณเห็นนี่เป็นฟังก์ชันที่ซับซ้อนซึ่งมีพารามิเตอร์มากมาย หากผู้ใช้ไม่ทราบถึงบทสนทนา "function arguments" และวิธีนำมาใช้และแทนที่จะคุ้นเคยกับ tooltip มาตรฐานของ Excel แต่จะเห็นเฉพาะชื่อสูตรและไม่มีความช่วยเหลือเพิ่มเติม:
ซึ่งพวกเขาไม่มีโอกาสที่จะระบุพารามิเตอร์ที่ต้องการได้อย่างถูกต้อง (โดยไม่อ่านเอกสารซึ่งแน่นอนว่าไม่มีผู้ใช้คนใดเคยทำ)
ตอนนี้ผู้ใช้ระดับสูงอาจรู้แล้วว่าด้วยการพิมพ์Ctrl+ Shift+ Aพวกเขาจะได้รับรายการพารามิเตอร์ฟังก์ชันที่กรอกอัตโนมัติดังนี้:
แต่แน่นอนว่าเรามีปัญหาเดียวกันกับข้างบนนั่นคือผู้ใช้ excel มาตรฐานจะใช้กับพฤติกรรมเริ่มต้นจากภาพแรกเท่านั้นและอาจจะไม่เคยเรียนรู้คุณลักษณะนั้นมาก่อน
ในจุดนี้ควรชัดเจนว่าเหตุใดจึงไม่เพียงพอและเราต้องการให้ทุกฟังก์ชันในตัวมีคำแนะนำเครื่องมือในบรรทัดที่บอกผู้ใช้ว่าจะใช้ฟังก์ชันนี้อย่างไร
แซว
ในตอนแรกฉันอาจมั่นใจว่าสิ่งนี้ไม่สามารถทำได้ยกเว้นด้วยฟังก์ชันแอปพลิเคชัน Excel ดั้งเดิม Add-in และ VBA เป็นคุณสมบัติความสามารถในการขยายและคำแนะนำเครื่องมือนี้อาจไม่สามารถขยายได้ แต่ทฤษฎีนั้นถูกท้าทายโดยการมีอยู่ของ Add-in Analysis Toolpak แน่นอนว่ามันสร้างขึ้นใน Microsoft แต่ ANALYS32.xll เป็นส่วนเสริม XLL แบบสแตนด์อโลนเช่นเดียวกับที่สามารถผลิตใน VB, C, C ++ และ C # แน่นอนว่าเมื่อโหลด XLL นี้ลงในแอปพลิเคชันแล้วฟังก์ชันที่ทำให้พร้อมใช้งานจะมีเคล็ดลับเครื่องมือเดียวกันของฟังก์ชัน excel ดั้งเดิม:
แน่นอนว่าหากข้อมูลนี้ถูกเข้ารหัสในไฟล์ XLL นี้และส่งต่อไปยัง Excel มีวิธีในการจำลองข้อมูลด้วย Add-in ของเราเองหรือไม่? ตอนนี้ฉันมาถึงจุดที่ฉันจะเริ่มสอนตัวเองเล็กน้อยเกี่ยวกับการแยกคอมไพล์และดูว่าฉันสามารถทำวิศวกรรมย้อนกลับสิ่งที่เกิดขึ้นใน toolpak การวิเคราะห์ได้หรือไม่
คุณจะช่วยได้อย่างไร
ฉันเกือบจะแน่ใจว่าฉันได้ค้นคว้าข้อมูลที่เปิดเผยต่อสาธารณะทั้งหมดเกี่ยวกับปัญหานี้แล้ว หากมีคนรู้บางสิ่งที่ฉันไม่รู้ซึ่งอาจช่วยได้ แต่อย่าลังเลที่จะตีระฆังฉันไม่คุ้นเคยกับ dlls / xlls ที่คอมไพล์วิศวกรรมย้อนกลับดังนั้นหากมีใครรู้สึกอยากเปิดสำเนา Analysis32.xll ในเครื่องและ เมื่อคิดว่าเกิดอะไรขึ้นกับคำจำกัดความของฟังก์ชันที่กำหนดเองฉันจะต้องรับผิดชอบมาก ไม่อย่างนั้นฉันจะขุดคุ้ยเรื่องนี้ต่อไปจนกว่าฉันจะเจอทางตันทั้งหมดและกลับมารายงานสิ่งที่ฉันพบ