Microsoft gaat ActiveX standaard uitschakelen in Office 2024

Microsoft gaat ActiveX standaard uitschakelen in Office 2024. Het framework staat voor alle gebruikers dan uit in Word, Excel, PowerPoint en Visio. Die kunnen dan geen ActiveX-objecten meer aanmaken of eraan werken.

Microsoft schrijft dat in het Microsoft 365 Admin Center, waar Neowin de tekst van heeft gepost. Het gaat om veranderingen in Office 2024, de nieuwe versie van de standalonesoftware die in oktober van dit jaar uit moet komen. Daarin wordt ActiveX standaard uitgeschakeld. Objecten die via ActiveX worden ingeladen, zijn dan in sommige gevallen nog wel te zien als statische afbeeldingen, maar gebruikers kunnen daar niets mee doen.

De instelling betekent dat de objecten standaard staan uitgeschakeld. Gebruikers worden daar ook niet voor gewaarschuwd. Microsoft vergelijkt de nieuwe functionaliteit met de DisableAllActiveX-policy die beheerders al konden inschakelen, wat vanwege veiligheidsredenen steeds meer de norm werd. Beheerders die de tool nog wel nodig hebben, kunnen die policy in de toekomt aanpassen of via het Trust Center of de registry alsnog ActiveX weer inschakelen. In april van volgend jaar wordt ActiveX ook uitgeschakeld in Microsoft 365.

Microsoft werkt al jaren aan de uitfasering van het framework, dat vaak als onveilig wordt gezien en inmiddels door meerdere andere tools is vervangen. Desondanks zit ActiveX nog in veel Microsoft-software, vaak vanwege compatibiliteitsredenen.

Door Tijs Hofmans

Nieuwscoördinator

06-09-2024 • 20:42

43

Reacties (43)

43
41
19
2
0
17
Wijzig sortering
Al jaren irrelevant. VBA gaat het volgende zijn wat geschrapt gaat worden. Wordt niet meer bijgewerkt voor interactie met nieuwe elementen en in plaats daarvan ligt de focus nu op Office Script. Dat kan maar één ding betekenen. Als je trouwens alleen al die vba code interface opent moet je de bui eigenlijk ook al wel zien hangen.

En ook dat gaat wel goedkomen met het eerder genoemde alternatief, of gewoon doordat je met de basis functies tegenwoordig ook al veel met kunt. Maar ongetwijfeld gaat het toch een hoop commotie opleveren omdat mensen hun halve bedrijf aan elkaar hebben geknoopt met gare verouderde zooi. Als je slim bent blijf je nu alvast ver weg van alles wat potentieel een gele balk oplevert bij het openen van je bestanden.
Betwijfel het. Met Office Script kun je minder dan met VBA.
Ik zie VBA voorlopig nog niet verdwijnen.. het is, hoe spijtig je dat ook kunt vinden, vooralsnog een erg belangrijke tool voor vele bedrijven.

VBA is designed to be desktop-centric. VBA can interact with a user's desktop to connect with similar technologies, such as COM and OLE. However, VBA has no convenient way to call out to the internet. Office Scripts use a universal runtime for JavaScript. This gives consistent behavior and accessibility, regardless of the machine being used to run the script. They can also make calls to a limited set of web services (bron).

Dit klinkt als marketing praat, gezien je met VBA prima ook web services kunt aanroepen. :+

VBA macros have the same security clearance as Excel. This gives them full access to your desktop. Office Scripts only have access to the workbook, not the machine hosting the workbook.
^ Dit stukje vooral. Veel bedrijven gebruiken VBA in Excel of Access om bestandjes in te lezen, te verplaatsen, op te slaan, muteren, etc. Leuk dat Microsoft graag wil dat iedereen al hun shit in de cloud (lees: HUN cloud) zet, maar daar zit niet elk bedrijf op te wachten denk ik zo. :P

[Reactie gewijzigd door Ayporos op 7 september 2024 08:02]

Je kunt er nu nog minder mee, maar Office Script (soort Type Script) wordt bijgewerkt, vba juist niet (qua features).

Daarbij kun je veel dingen tegenwoordig veel handiger oplossen. Bijvoorbeeld, vroeger gebruikte ik van voor het inlezen van een map bestanden, maar het is doorgaans onzinnig dat nog zo te doen; je kunt veel beter power query gebruiken hiervoor.

Daarbij krijgt Excel ook constant nieuwe krachtige functies die van overbodig kunnen maken in veel gevallen. Vroeger gebruikte ik het wel eens om formules automatisch tot het einde door te laten trekken, nu gebruik ik gewoon een dynamische array formule. Er komt ook nog python en regex support en dat soort zaken. Eventueel kun je ook Power Automate gebruiken voor wat meer complexe zaken (kun je ook mooi op schema laten lopen).

Microsoft heeft het wel eens eerder geprobeerd van te verwijderen, in een Mac versie een paar jaar terug. Tuurlijk, dat was voor de markt nog te vroeg, maar het blijft een teken aan de wand. Ik zou echt aanraden hier geen nieuwe tooltjes e.d. meer mee te bouwen vandaag de dag.

[Reactie gewijzigd door i7x op 7 september 2024 09:19]

Ik dacht dat de Python en andere niet-VBA allemaal op de cloud wordt uitgevoerd en niet lokaal en dus zonder abonnement zullen die dingen niet werken.
Over python kan ik weinig zeggen. Ik heb wel met Office Script wat gespeeld. Dat wordt opgeslagen in OneDrive inderdaad. Je hoeft denk ik niet per se een abo te hebben, maar op zijn minst wel een MS account (en nog wat ruimte over in je--evt gratis--OneDrive).

Ook als men dit irritant vindt, dan kan, maar als MS vba eruit sloopt, dan zul je het er toch mee moeten doen natuurlijk. Overigens denk ik dat dit in de praktijk ook heel erg mee zal vallen. Welk bedrijf gebruikt er nu Office waarbij men vervolgens niet is ingelogd? Zal wellicht kunnen in theorie, maar ik heb er nog nooit ook maar van gehoord.
Ik heb het over de uitvoering van de code. Dus je code zit inderdaad in OneDrive etc. maar je data + code wordt gekopieerd en uitgevoerd in een Azure container, niet lokaal in je eigen computer. Misschien "vandaag" nog gratis, maar ik kan me voorstellen dat je binnenkort een factuur zal krijgen voor CPU gebruik van elk document dat je opent, daarnaast krijgt Microsoft dus ook een kopie van je data en als je op een vliegtuig het document opent, werkt niets.

En inderdaad: https://learn.microsoft.c...business#platform-support je hebt een maandelijkse licentie nodig om uit te voeren.

[Reactie gewijzigd door Guru Evi op 9 september 2024 15:39]

VBA macros have the same security clearance as Excel. This gives them full access to your desktop. Office Scripts only have access to the workbook, not the machine hosting the workbook.
^ Dit stukje vooral.
Dus praktisch gezien heel veel beveiligingsrisicos?

Reken d'r maar op dat ze op een gegeven moment over gaan naar 'Office Script' voor simpele dingen en 'Power Automate' o.i.d.

Ze pushen uiteindelijk toch alles richting de cloud, dus:
VBA is designed to be desktop-centric
Het hele design van VBA strookt niet met de richting die ze op willen én verouderd/beveiligingsrisicos.
Eens - bestanden inlezen vanaf het netwerk, bijhouden of er nieuwe gegevens zijn toegevoegd ging prima - ook als het PDF’s of LateX dingen waren. Iedereen om acht uur met dezelfde versie van de waarheid aan e slag.
Ik denk dat er nog wel ergens een vrachtwagenbeladingsexcel van me draait die de route en lading van de vrachtauto iteratief optimaliseert. Dat moet tegenwoordig wel efficiënter kunnen, maar ik denk dat ik me daar niet meer in ga verdiepen.
Het heeft zijn tijd gehad en een AI functionele robot moet het nu veel beter kunnen. Alleen de vraag wat voor oplossingen je dan krijgt. Ik ben benieuwd hoeveel beter het nog kan.
VBA macros have the same security clearance as Excel. This gives them full access to your desktop. Office Scripts only have access to the workbook, not the machine hosting the workbook.
Dit is ook waarom security blue teams er zo'n hekel aan hebben natuurlijk. En dat is voor bedrijven ook belangrijk. Wat je bij ons ziet is dat in plaats van voor sommige tools een uitzondering te maken op de macro blocking, die tools nu herschreven worden in low-code platforms.

Je kan elke DLL aanroepen op het systeem met enorme rechten.

Signing zou ook een hoop helpen maar wat ik bij ons zie is toch meer het vervangen.

[Reactie gewijzigd door Llopigat op 7 september 2024 12:57]

Ik heb nu een Excel useform in VBA in gebruik op m’n werk waar belangrijke informatie in geregistreerd wordt, berekeningen worden uitgevoerd en een etiket wordt geprint.
Heeft iemand een tip waar ik dit naar toe zou kunnen migreren?
Binnen ons bedrijf gelden strenge regels en mogen we software vaak niet installeren.
Zolang je kwa data inlezen/opslaan binnen Excel zelf blijft kun je waarschijnlijk dit naar Office Script migreren.. maar je hoeft voorlopig nog niet bang te zijn dat je VBA niet meer werkt hoor. Zodra Microsoft dat aankondigt dat ze dat willen gaan uitschakelen dan kan je er van uitgaan dat die datum 3 à 5 jaar ná die bekendmaking zal liggen..
NocoDB of Budibase oid. Er zijn veel low-code, no-code oplossingen hiervoor of een robuste oplossing voor je probleem. Excel is niet echt voor "belangrijk" werk. https://www.journalofacco...l-calculation-errors.html
Zou wel jammer zijn, want de record macro maakte 'programmeren' wel heel gemakkelijk.
Die zal het ook nog wel doen - VBA doet meer. Ook buiten Excel. Eventjes controleren of de gebruiker is wie hij zegt dat hij is (password authentication), bestanden kopiëren naar de temp directory, processen stoppen of pauzeren terwijl de VBA routine draait. Ingrijpen in Adobe en informatie uit een PDF pakken. Het ging allemaal met VBA en was super handig maar ook een serieus risico.
Ik mag hopen dat Microsoft nog even bekijkt hoe ze een alternatief kunnen implementeren voor VBA voor ze dat dumpen. Gezien de uitgebreide mogelijkheden denk ik dan bijvoorbeeld aan PS, maar dat haalt nu bij lange na niet het gebruiksgemak van VBA binnen Office. Een halve (Office)script oplossing in combinatie met oplossingen om taken te automatiseren is helemaal hopeloos. Toch ben ik bang dat de marketingafdeling dat wel als heilige oplossing zal zien. Meer software, meer omzet.
Met hoe Office 365 integratie heeft voor Python zal dat misschien wel de volgende stap zijn (of misschien een periode met Python en daarna weer een nieuwe Microsoft taal of voor Microsoft producten). Ik ben niet zo bekend met VBA maar een beetje, maar op eerste gezicht heeft het wel veel overeenkomsten met Python, qua semantiek maar ook qua moeilijkheidsgraag. En met meer mogelijkheden zoals met regex, wat schijnbaar werkt in VBA maar niet veel meer dan dat.
VBA is gewoon prima, het enige grote gemis voor als je complexere dataverwerking wilt doen over grotere datasets is dat het single-threaded is. Er zijn wel workarounds maar die zijn ook niet altijd even 'netjes'.
Inderdaad, het grote voordeel met VBA is toch wel het maar 1 keer hoeven draaien i.p.v. cellen linken, ook al neemt dat die limitatie ook niet weg. Misschien ben ik onder de verkeerde indruk wat betreft gebreken, kan ook niet meteen iets noemen zo.
Nou... met ouderdom komt wijsheid zullen we maar zeggen. ActiveX was één van de meest prominente problemen die Microsoft-software onveilig maakten. 20 jaar te laat zou ik zeggen en voor mij is MS Office ondertussen overbodig, maar voor wie het nog gebruikt, gefeliciteerd.
Het was al iets eerder, ik denk Windows 98 maar het was al eerder ontwikkeld.

“ De techniek werd in 1996 geïntroduceerd door Microsoft als een ontwikkeling van de Microsoft-technologieën Component Object Model (COM) en Object Linking and Embedding (OLE). Sinds 2013 wordt ActiveX niet langer verder ontwikkeld. Microsoft Edge biedt geen ondersteuning meer voor het framework.“
Nope, Het eerste Os met ActiveX was NT4 (sp2, als ik t me goed herinner)
Ja klopt, in Windows 98 (of was het ME?) kwam ook al de "active desktop". Dat leunde op ActiveX.

Die gebruikte ik toen ook om een paar klokken te tonen met een zelfgemaakte webpagina.

Het is te lang geleden om me goed te herinneren :D

Edit: Ja het was Windows 98. Bron. En ActiveX is uit 1996.

[Reactie gewijzigd door Llopigat op 7 september 2024 13:01]

Wat is er een beter en intuïtiever alternatief?
En werkt overal zonder meer gedoe dan het office pakket?
Delphi kan MS Office besturen, ja, dus VBA-applicaties kun je heel goed vervangen door een Delphi-programma, en omdat Delphi een veel robuuster systeem is dan VBA, zal dat alleen betere veiligheid opleveren, maar ook een betere applicatie in het algemeen.
ActiveX is al jaren onveilig en daarom ook al jaren gewoon uit te schakelen. In bedrijfsomgevingen kunnen beheerders al enorm lang policies zetten die ActiveX overal kunnen uitschakelen terwijl bij thuisgebruikers je net wenst dat mensen zo probleemloos mogelijk kunnen werken.

Zolang je metrics aangeven dat er nog een aanzienlijk deel gebruikers is dat hier gebruik van maakt, zorg je ervoor dat het zo veilig mogelijk kan zonder die gebruikers standaard dwars te zitten. Van zodra het aandeel klein genoeg is kan je dan eindelijk beslissen om het standaard uit te schakelen.

Want had men dit 10 jaar terug gedaan, dan kan je er zeker van zijn dat vele mensen zouden gaan klagen over hoe slecht het wel niet is dat MS dit standaard uit zet.
Jij ook gefeliciteerd kerel
De oorspronkelijke implementatie van ActiveX was dan ook om van te janken: websites konden met nauwelijks of zonder enige toestemming native code gaan draaien. Koppel dat aan Win9x waarop alle software met volle privileges draaide en het drama was compleet.

Al was het wel zinvol in een periode waarin JavaScript-interpreters veel te traag waren voor interactiviteit op websites.
Ik krijg een jaren 2000 gevoel met ActiveX want alle spyware, toolbars van Internet Explorer gebruikten het. ;)
Ik krijg ook flashbacks naar adobe flashplayer en Java :D Er zullen ongetwijfeld mensen zijn die het nog voor bepaalde toepassingen nodig hebben, maar ik ben er zelf een jaar of 10 terug mee gestopt om te installeren, en heb het nooit gemist eigenlijk.
Wat zijn dan de vervangers van ActiveX?
Je kan VSTO gebruiken in uh Word en Excel en er is ook nog een COM en C API. Je kan ook gaan voor een Javascript API.

VSTO is wat ik persoonlijk gebruik, het is nogal ouderwets opgezet en zit ook vast op .NET 4.8. VSTO zit bijvoorbeeld niet meer in de nieuwe Outlook wat niet veel goeds beloofd voor toekomstige Excel en Word refreshes.
NuOutlook is een ramp, nu hebben ze 5 jaar twee versies en over 5 jaar wil nog de helft niet overstappen. Kan je ze wel dwingen, maar als je toch dreigt al hun bestaande integratie kapot te maken kunnen ze wel eens rare sprongen maken.
Het wordt tijd dat we niet meer vanuit documenten programma's aanroepen en dergelijke. Het is zaak dat deocument-tools zoals de msOffice programma's een goede en stabiele programmeer interface krijgen zodat iedere programmeur met zijn/haar eigen taal en tools de documenten kan aansturen.

Daarmee kunnen de documenten onafhankelijk worden verspreid zonder dat de ingebakken code elders niet werkt of juist schade aanricht. En de programmatuur apart kan worden bedient en behandeld. Bijvoorbeeld met eigen licenties en rechten en plichten rond het draaien.

Ooit, eind vorige eeuw heb ik zowel van wordperfect als van msWord een programmeer handleiding in handen gehad. Helaas is die interface in msWord met de millenium-bug-proof versies niet meer voortgezet (en wordperfect helemaal niet). Tot die tijd werden deze tekstverwerkers in allerlij andere programmatuur ingezet.
Dat is iets dat al enkele decennia kan, maar zover mij bekend wordt het amper gebruikt ( zie bijvoorbeeld geaccepteerd antwoord in https://stackoverflow.com...andle-excel-files-using-c ). In 2006 deed ik dit reeds voor Office 2003.

In de praktijk is dit gewoon niet praktisch omdat veel documenten hun eigen scripts hebben: dan zou je iedere keer een appart programma moeten maken die je samen met het document levert en die ook weer alle rechten over het systeem heeft. Dan heb je nog steeds evenveel risico's, zoniet nog meer.

Dan lijkt het me beter om het script gewoon in het document te houden en een sandbox te voorzien waar het niet uitkan. Slechts met de juiste permissies kan het buiten het document.
Microsoft is koning Backwards compatibility. Met ook de negatieve kanten hiervan. Goed dat er een stap vooruit gezet wordt.
In ~ 1997 deed ik een collega programmeur flippen
omdat ik op zijn scherm kon tekenen,
nadat hij een ActiveX control had aangeklikt.
.
Het is helaas niet meer van / voor deze tijd...
'als onveilig wordt gezien' - vooral dat stukje zin vond ik prachtig! Indertijd als we active-x neerbliksemden waren we een onheilsprofeet enz... - nu blijkt dat ik dus wel degelijk gelijk had. Make my day!
Microsoft gaat soms echt te ver met backwards comptabiliteit; het feit dat deze troep pas anno 2024 stopt, is echt laat.
Office 2024 als standalone. mooi.
Dacht dat ze enkel nog de 365 met abonnement gingen doen.
Deze ga ik toch nog eens afschaffen dan.

Op dit item kan niet meer gereageerd worden.