อะไรคือความแตกต่างระหว่าง“ Form Controls” และ“ ActiveX Control” ใน Excel 2010


97

การใช้ Microsoft Excel 2010 ผมสังเกตเห็นทั้งสองชนิดของการควบคุมที่สามารถแทรกลงในเอกสาร: ตัวควบคุมฟอร์มและควบคุม ActiveX

ป้อนคำอธิบายภาพที่นี่

อะไรคือความแตกต่างระหว่างพวกเขา?


8
ตัวควบคุมฟอร์มถูกอบลงใน Excel เอง ตัวควบคุม ActiveX ถูกโหลดจาก DLL แยกต่างหาก คุณสามารถเพิ่มตัวควบคุม ActiveX พิเศษไม่ใช่ตัวควบคุมฟอร์ม
Hans Passant

ขอบคุณ @HansPassant! เท่าที่ฉันเข้าใจฉันควรเริ่มต้นด้วย Form Control ในขณะที่งานสามารถทำได้โดยไม่ต้องพึ่งพา ActiveX Controls
Rubens Mariuzzo

คำตอบ:


96

Google จะเต็มไปด้วยข้อมูลเกี่ยวกับเรื่องนี้ ดังที่ Hans Passant กล่าวว่าตัวควบคุมฟอร์มถูกสร้างขึ้นใน Excel ในขณะที่ตัวควบคุมActiveXถูกโหลดแยกกัน

โดยทั่วไปคุณจะใช้Formsการควบคุมซึ่งจะง่ายกว่า ActiveXการควบคุมช่วยให้การออกแบบมีความยืดหยุ่นมากขึ้นและควรใช้เมื่องานไม่สามารถทำได้ด้วยการFormsควบคุมพื้นฐาน

โดยค่าเริ่มต้น คอมพิวเตอร์ของผู้ใช้จำนวนมากจะไม่เชื่อถือActiveXและจะปิดใช้งาน บางครั้งต้องเพิ่มเข้าไปในศูนย์ความเชื่อถือด้วยตนเอง ActiveXเป็นเทคโนโลยีที่ใช้ไมโครซอฟท์และเท่าที่ฉันทราบไม่รองรับบน Mac นี่คือสิ่งที่คุณจะต้องพิจารณาด้วยเช่นกันหากคุณ (หรือใครก็ตามที่คุณให้สมุดงาน) ตัดสินใจใช้งานบน Mac


ฉันกำลังมองหาคำตอบ / คำอธิบายประเภทนี้ ตอนนี้ฉันเข้าใจข้อดีข้อเสียของ Form Controls บน ActiveX แล้ว ฉันจะใช้ Form Controls ในขณะที่งานนี้สามารถทำได้ ขอบคุณแซมและขอบคุณ @HansPassant
Rubens Mariuzzo

ไม่มีปัญหา - ยินดีให้ความช่วยเหลือ หากคุณพอใจกับคำตอบที่ให้ไว้โปรดอย่าลืมทำเครื่องหมายว่าเป็นเช่นนั้นวิธีนี้จะให้ผู้อื่นทราบคำตอบ
StoriKnow

ไม่มีปัญหาฉันใช้ความอดทนและรอความคิดเห็นอื่น ๆ
Rubens Mariuzzo

1
@ แซมฉันพบว่าคำตอบของคุณมีประโยชน์มากที่สุด แต่บางทีคุณอาจยินดีที่จะเพิ่มอีกสิ่งหนึ่งในคำตอบของคุณซึ่งฉันต้องหาวิธีที่ยากลำบาก ActiveX ควบคุมบางครั้ง "ทำงานผิดปกติ" และเพิ่มหรือปรับขนาดโดยอัตโนมัติ mrexcel.com/forum/excel-questions/…หรือblogs.technet.com/b/the_microsoft_excel_support_team_blog/…
Ralph

1
มีคนโพสต์ใน mrexcel.com เธรดลิงก์กลับไปยังเธรด StackOverflow นี้excel-the-Incredible-shrinking-and- expand -controlsซึ่งมีการอภิปรายเกี่ยวกับปัญหาเกี่ยวกับ ActiveX controls
Tim Joy T-Square Consulting

26

ข้อแตกต่างที่สำคัญอย่างหนึ่งที่ควรทราบคือตัวควบคุม ActiveX แสดงเป็นวัตถุที่คุณสามารถใช้ในโค้ดของคุณ - ลองแทรกตัวควบคุม ActiveX ลงในแผ่นงานเปิดตัวแก้ไข VBA (ALT + F11) และคุณจะสามารถเข้าถึงได้ การควบคุมโดยทางโปรแกรม คุณไม่สามารถทำได้ด้วยตัวควบคุมฟอร์ม (ต้องกำหนดมาโครให้กับแต่ละตัวควบคุมอย่างชัดเจนแทน) แต่ตัวควบคุมฟอร์มใช้งานง่ายกว่าเล็กน้อย หากคุณกำลังทำอะไรง่ายๆไม่สำคัญว่าคุณจะใช้ตัวไหน แต่สำหรับสคริปต์ขั้นสูง ActiveX มีความเป็นไปได้ที่ดีกว่า

ActiveX ยังปรับแต่งได้มากขึ้น


1

นอกจากนี้ยังเป็นที่น่าสังเกตว่าตัวควบคุม ActiveX ใช้งานได้เฉพาะใน Windows ในขณะที่ Form Controls จะทำงานบน Excel ทั้ง Windows และ MacOS


0

โปรดระวังในบางกรณีการคลิกที่ Form Control หรือ Active X Control จะให้ผลลัพธ์ที่แตกต่างกันสองรายการสำหรับมาโครเดียวกันซึ่งไม่ควรเป็นเช่นนั้น ฉันพบว่า Active X น่าเชื่อถือกว่า


14
นี่จะเป็นคำตอบหากคุณสามารถจัดเตรียมแมโครที่ให้ผลลัพธ์ที่แตกต่างกันด้วยตัวควบคุม ActiveX / Form
Jacques Gaudin
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.