Qual é a diferença entre “Controles de formulário” e “Controle ActiveX” no Excel 2010?

96

Usando o Microsoft Excel 2010, percebi dois tipos de controles que podem ser inseridos em um documento: controles de formulário e controles ActiveX .

insira a descrição da imagem aqui

Qual a diferença entre eles?

Rubens Mariuzzo
fonte
8
Os controles de formulário são incorporados ao próprio Excel. Os controles ActiveX são carregados de DLLs separadas. Você pode adicionar controles ActiveX extras, não controles de formulário.
Hans Passant
Obrigado @HansPassant! Pelo que entendi, devo começar com o Form Control enquanto o trabalho pode ser feito sem depender dos controles ActiveX.
Rubens Mariuzzo

Respostas:

96

O Google está cheio de informações sobre isso . Como disse Hans Passant, os controles de formulário são integrados ao Excel, enquanto os controles ActiveX são carregados separadamente.

Geralmente você usará Formscontroles, eles são mais simples. ActiveXos controles permitem um design mais flexível e devem ser usados ​​quando o trabalho simplesmente não pode ser feito com um Formscontrole básico .

Por padrão, os computadores de muitos usuários não confiarãoActiveX e será desativado; isso às vezes precisa ser adicionado manualmente à central de confiança. ActiveXé uma tecnologia baseada em microsoft e, tanto quanto eu sei, não é compatível com o Mac. Isso é algo que você também terá que considerar, caso você (ou alguém para quem você forneça uma pasta de trabalho) decida usá-lo em um Mac.

StoriKnow
fonte
Eu estava procurando por esse tipo de resposta / explicação. Agora eu entendo os prós e os contras dos controles de formulário sobre ActiveX. Usarei os controles de formulário enquanto o trabalho pode ser feito com eles. Obrigado Sam e obrigado @HansPassant
Rubens Mariuzzo
Não tem problema, feliz em ajudar. Se você estiver satisfeito com a resposta fornecida, lembre-se de marcar como assim, dessa forma os outros saberão que uma resposta foi fornecida.
StoriKnow de
Sem problemas, eu costumava ser paciente e esperar outras opiniões.
Rubens Mariuzzo
1
@ Sam, acho sua resposta muito útil. Mas talvez você esteja disposto a acrescentar mais uma coisa à sua resposta que eu tive que descobrir da maneira mais difícil. Os controles ActiveX às vezes "se comportam mal" e aumentam ou redimensionam automaticamente. mrexcel.com/forum/excel-questions/… ou blogs.technet.com/b/the_microsoft_excel_support_team_blog/…
Ralph,
1
Alguém postou naquele tópico do mrexcel.com um link de volta para este tópico StackOverflow excel-the-incríveis-encolhendo-e-expandindo-controles que tem muita discussão sobre os problemas com controles ActiveX.
Tim Joy T-Square Consulting
26

Uma diferença importante que é importante saber é que os controles ActiveX aparecem como objetos que você pode usar em seu código - tente inserir um controle ActiveX em uma planilha, abra o editor VBA (ALT + F11) e você será capaz de acessar o controle programaticamente. Você não pode fazer isso com controles de formulário (em vez disso, as macros devem ser atribuídas explicitamente a cada controle), mas os controles de formulário são um pouco mais fáceis de usar. Se você está apenas fazendo algo simples, não importa qual você usa, mas para scripts mais avançados, o ActiveX tem melhores possibilidades.

ActiveX também é mais personalizável.

iliketocode
fonte
1

Tenha cuidado, em alguns casos, clicar em um Form Control ou Active X Control fornecerá dois resultados diferentes para a mesma macro - o que não deveria ser o caso. Acho o Active X mais confiável.

JLG
fonte
13
Esta seria uma resposta se você pudesse fornecer uma macro que forneça resultados diferentes com um controle ActiveX / Form.
Jacques Gaudin
1

Também é importante notar que os controles ActiveX só funcionam no Windows, enquanto os controles de formulário funcionam nas versões do Excel para Windows e MacOS.

maciej
fonte