If you rely on macros in LabChart, you may have recently noticed unexpected behavior or subtle errors in your macro data collection.
An incompatibility has been identified between a recent Microsoft Windows security updates (KB5094126 and KB5095051) and LabChart macros. This update introduced backend security changes to Windows OLE automation, which can cause macros to process data incorrectly or fail to complete.
Current Status (Updated: July 20, 2026)
Microsoft have officially released a number of security updates to resolve the issue on July 14th 2026. We recommend you install the latest Windows update for your device.
ADInstruments has tested this update and confirms it has resolved the issue.
Previous Status (Updated: June 18, 2026)
Microsoft has officially acknowledged that the June 2026 security patch introduces a bug that breaks background macro and OLE automation functions across multiple third-party software platforms, including LabChart.
They are actively working on an official patch to resolve this issue. You can track their progress and release notes regarding the upcoming fix here:
Microsoft Support: June 9, 2026 — KB5094126
Microsoft Support: June 9, 2026 — KB5095051
Until this new patch is officially deployed to your system, the workarounds listed below remain the only ways to restore functionality. We are actively monitoring the situation, and we will update this article as soon as the official fix is live or if there are any changes to their resolution plan.
Symptoms
Because this issue alters how variables and scripts are processed in the background, the symptoms can be easily missed. You may experience:
- Incorrect information being collected or analyzed due to wrong data ranges being applied.
- Variables returning blank or incorrect values in message boxes or outputs.
- Macros hanging, looping indefinitely, or failing to finish running.
Known Technical Triggers
While the underlying Windows update affects OLE automation broadly, we have identified a specific, reproducible trigger for data corruption.
The most common issue occurs when a single variable is used multiple times within the same function call. For example, in the following macro script, the variable currentRecord is called twice within the SetSelectionRange function:
currentRecord = 1
Set selobj = Doc.SelectionObject
Call selobj.SetSelectionRange (currentRecord, 30, currentRecord, 30)
MsgBox "CR: " & currentRecordWith the Windows patch installed, the system incorrectly interprets the arguments. Instead of passing (1, 30, 1, 30), it passes (0, 30, 1, 30). Additionally, the variable may clear entirely on subsequent lines, causing the message box to output "CR: " instead of "CR: 1".
Solutions
If you are experiencing these issues, please use one of the following solutions to restore normal macro functionality.
Option 1: Update your Macro Code (Recommended)
The safest way to address the primary known trigger without compromising your system's security is to manually update your macro scripts. You must wrap any reused variables in parentheses () within the function call.
Using the previous example, updating the third line to enclose currentRecord in parentheses will force the system to read the variables correctly:
currentRecord = 1
Set selobj = Doc.SelectionObject
Call selobj.SetSelectionRange ((currentRecord), 30, (currentRecord), 30)
MsgBox "CR: " & currentRecordOption 2: Wait for the Official Microsoft Fix (Safest Alternative)
If your macros are not mission-critical right now, the absolute safest option is to do nothing and wait for Microsoft to release their official fix. Once this fix is deployed, your macros should return to normal functionality without any manual code changes or security risks.
Option 3: Uninstall Windows Security Patch KB5094126
If you have hundreds of mission-critical macros, cannot realistically update all of your code, and cannot wait for the Microsoft fix, you can temporarily uninstall security patch KB5094126 from your Windows machine to restore legacy functionality.
Note: As this is a security patch, please consult your internal IT department or equivalent team before proceeding.
If you have further questions or concerns about this, please contact your local Technical Support Representative by completing the online form located HERE.