Jaka jest różnica między „Formantami formularza” a „Formantami ActiveX” w programie Excel 2010?

96

Korzystając z programu Microsoft Excel 2010, zauważyłem dwa rodzaje kontrolek, które można wstawić do dokumentu: formanty formularzy i formanty ActiveX .

wprowadź opis obrazu tutaj

Jaka jest różnica między nimi?

Rubens Mariuzzo
źródło
8
Kontrolki formularza są umieszczane w samym programie Excel. Formanty ActiveX są ładowane z oddzielnych bibliotek DLL. Możesz dodać dodatkowe kontrolki ActiveX, a nie kontrolki formularza.
Hans Passant,
Dzięki @HansPassant! O ile rozumiem, powinienem zacząć od Form Control, podczas gdy zadanie można wykonać bez polegania na formantach ActiveX.
Rubens Mariuzzo

Odpowiedzi:

96

Google jest pełne informacji na ten temat . Jak powiedział Hans Passant, kontrolki formularzy są wbudowane w Excel, podczas gdy kontrolki ActiveX są ładowane osobno.

Ogólnie będziesz używać Formskontrolek, są prostsze. ActiveXelementy sterujące pozwalają na bardziej elastyczne projektowanie i powinny być używane, gdy pracy po prostu nie można wykonać za pomocą podstawowego elementu Formssterującego.

Wiele komputerów użytkowników domyślnie nie ma zaufania ActiveX i zostanie wyłączone; czasami trzeba to ręcznie dodać do centrum zaufania. ActiveXjest technologią opartą na Microsoft i, o ile mi wiadomo, nie jest obsługiwana na komputerach Mac. To jest coś, co musisz również wziąć pod uwagę, jeśli Ty (lub ktokolwiek, komu udostępniasz skoroszyt), zdecydujesz się użyć go na komputerze Mac.

StoriKnow
źródło
Szukałem tego rodzaju odpowiedzi / wyjaśnienia. Teraz rozumiem zalety i wady formantów formularzy zamiast ActiveX. Będę używał formantów Form Controls, dopóki praca będzie z nimi wykonana. Dzięki Sam i dzięki @HansPassant
Rubens Mariuzzo
Żaden problem - chętnie pomogę. Jeśli odpowiedź jest satysfakcjonująca, pamiętaj, aby zaznaczyć, że tak, dzięki czemu inni wiedzą, że udzielono odpowiedzi.
StoriKnow
Nie ma problemu, jestem cierpliwy i czekam na inne opinie.
Rubens Mariuzzo
1
@Sam, Twoja odpowiedź jest dla mnie najbardziej pomocna. Ale może zechcesz dodać do swojej odpowiedzi jeszcze jedną rzecz, o której musiałem się przekonać na własnej skórze. Formanty ActiveX czasami „źle działają” i automatycznie zwiększają lub zmieniają rozmiar. mrexcel.com/forum/excel-questions/… lub blogs.technet.com/b/the_microsoft_excel_support_team_blog/…
Ralph
1
Ktoś opublikował w tym wątku mrexcel.com łącze z powrotem do tego wątku StackOverflow excel-the- amazing-shrinking -and-expanding-controls, który zawiera wiele dyskusji na temat problemów z formantami ActiveX.
Tim Joy T-Square Consulting,
26

Jedną z głównych różnic, o których należy wiedzieć, jest to, że formanty ActiveX pojawiają się jako obiekty, których można użyć w kodzie - spróbuj wstawić formant ActiveX do arkusza roboczego, otwórz edytor VBA (ALT + F11), a będziesz mieć dostęp do sterowanie programowo. Nie można tego zrobić za pomocą kontrolek formularzy (zamiast tego makra muszą być jawnie przypisane do każdej kontrolki), ale kontrolki formularzy są nieco łatwiejsze w użyciu. Jeśli robisz coś prostego, nie ma znaczenia, którego używasz, ale w przypadku bardziej zaawansowanych skryptów ActiveX ma lepsze możliwości.

ActiveX jest również bardziej konfigurowalny.

iliketocode
źródło
1

Uważaj, w niektórych przypadkach kliknięcie kontrolki formularza lub aktywnej kontrolki X da dwa różne wyniki dla tego samego makra - co nie powinno mieć miejsca. Uważam, że Active X jest bardziej niezawodny.

JLG
źródło
13
To byłaby odpowiedź, gdybyś mógł dostarczyć makro, które daje różne wyniki z kontrolką ActiveX / Form.
Jacques Gaudin
1

Warto również zauważyć, że formanty ActiveX działają tylko w systemie Windows, podczas gdy formanty formularzy będą działać zarówno w wersji programu Excel dla systemu Windows, jak i MacOS.

maciej
źródło