118

Using Microsoft Excel 2010, I noticed two kind of controls that can be inserted into a document: Form Controls and ActiveX Controls.

enter image description here

What is the difference between them?

pgSystemTester
  • 8,979
  • 2
  • 23
  • 49
Rubens Mariuzzo
  • 28,358
  • 27
  • 121
  • 148
  • 12
    The Form controls are baked into Excel itself. The ActiveX controls are loaded from separate DLLs. You can add extra ActiveX controls, not Form controls. – Hans Passant Mar 16 '13 at 22:24
  • Thanks @HansPassant! As far as I understand I should start with Form Control while the job can be done without relying to ActiveX Controls. – Rubens Mariuzzo Mar 18 '13 at 15:06
  • 2
    See my detailed answer here: [**Overview of differences between Form Controls and ActiveX Controls in Excel**](https://stackoverflow.com/a/50144021/8112776) – ashleedawg Oct 12 '18 at 01:27

4 Answers4

111

Google is full of information on this. As Hans Passant said, Form controls are built in to Excel whereas ActiveX controls are loaded separately.

Generally you'll use Forms controls, they're simpler. ActiveX controls allow for more flexible design and should be used when the job just can't be done with a basic Forms control.

Many user's computers by default won't trust ActiveX, and it will be disabled; this sometimes needs to be manually added to the trust center. ActiveX is a microsoft-based technology and, as far as I'm aware, is not supported on the Mac. This is something you'll have to also consider, should you (or anyone you provide a workbook to) decide to use it on a Mac.

MiffTheFox
  • 21,302
  • 14
  • 69
  • 94
StoriKnow
  • 5,738
  • 6
  • 37
  • 46
  • I was looking for this kind of answer/explanation. Now I understand the pros and cons of Form Controls over ActiveX. I will be using Form Controls while the job can be done with them. Thanks Sam and thanks @HansPassant – Rubens Mariuzzo Mar 18 '13 at 15:04
  • No problem - glad to help. If you're satisfied with the provided answer please remember to mark is as so, this way others know an answer was provided. – StoriKnow Mar 18 '13 at 16:15
  • No problem, I use to be patient and wait for other opinions. – Rubens Mariuzzo Mar 18 '13 at 20:44
  • 2
    @Sam, I find your answer most helpful. But maybe you are willing to add one more thing to your answer whcih I had to find out the hard way. ActiveX controls sometimes "misbehave" and automatically more or resize. http://www.mrexcel.com/forum/excel-questions/393625-activex-controls-resizing-bug.html or http://blogs.technet.com/b/the_microsoft_excel_support_team_blog/archive/2012/11/27/activex-and-form-controls-resize-themselves-when-clicked-doing-a-print-preview-or-resolution-changed.aspx – Ralph Apr 02 '15 at 14:19
  • 1
    Someone has posted in that mrexcel.com thread a link back to this StackOverflow thread [excel-the-incredible-shrinking-and-expanding-controls](https://stackoverflow.com/questions/1573349/excel-the-incredible-shrinking-and-expanding-controls) which has much discussion on the problems with ActiveX controls. – Tim Joy T-Square Consulting Jul 17 '17 at 00:27
  • https://stackoverflow.com/a/50144021/8112776 – ashleedawg Aug 27 '22 at 12:07
31

One major difference that is important to know is that ActiveX controls show up as objects that you can use in your code- try inserting an ActiveX control into a worksheet, bring up the VBA editor (ALT + F11) and you will be able to access the control programatically. You can't do this with form controls (macros must instead be explicitly assigned to each control), but form controls are a little easier to use. If you are just doing something simple, it doesn't matter which you use but for more advanced scripts ActiveX has better possibilities.

ActiveX is also more customizable.

John Smith
  • 7,243
  • 6
  • 49
  • 61
4

It's also worth noting that ActiveX controls only work in Windows, whereas Form Controls will work on both Windows and MacOS versions of Excel.

maciej
  • 444
  • 3
  • 17
-2

Be careful, in some cases clicking on a Form Control or Active X Control will give two different results for the same macro - which should not be the case. I find Active X more reliable.

JLG
  • 37
  • 6