Changelog
v2.5 – 2024-11-15
changed:
- the product registration key format
fixed:
- Malicious DLL penetration vulnerability during compiled workbook run-time loading.
- Issue with DataValue() vba function for non-English regional settings.
- Other miscellaneous compile-time and runtime errors.
v2.4 – 2024-09-12
implemented:
- Predefined VBA compile-time constant DNXVBC_VBA_COMPILE_TIME. This constant is set to True during compilation by VbaCompiler.
- Added the product license renewal reminder for registered customers.
- Announcement of the product’s new version availability.
fixed:
- Issue with the Shell() function.
- Issue with the Application.Evaluate() method for non-English regional settings.
- Errors in Range object methods for non-English regional settings.
- Issue when passing a String type argument to a method parameter that expects a Byte array.
- Issue when a Class array is declared as a field within a user-defined type (Type structure).
- Error in nested For statements when using a single Next statement with multiple loop variables, like: Next k, i, j.
- Other miscellaneous compile-time and runtime errors.
v2.3 – 2024-01-30
implemented:
- “Show trial message once a day” option for the trial mode.
- “Show freemium message once a day” option for the freemium mode.
- Command line compilation ‘-nag_once_aday’ switch was added, to use it for trial or freemium modes.
changed:
- compiled DLL version number fields were expanded up to 4 digits per field.
v2.2 – 2023-12-18
implemented:
- new ‘Freemium’ mode for accessing an unregistered workbook. ‘Freemium’ mode is an alternative to ‘Trial’ mode.
- added “IsFreemiumMode()” method into the ‘mdlDoneExVbaCompilerRtmAPI.bas’ module with run-time API.
- new ‘-freemium’ switch for command line compilation.
v2.1 – 2023-11-28
implemented:
- GUI option labeled “Disallow to run on virtual machine” to prevent the execution of a compiled workbook/add-in on virtual machines. The option is available in the product registered with Professional license.
- command line compilation option ‘-novm’ to prevent the execution of a compiled workbook/add-in on virtual machines. The option is available in the product registered with Professional license.
- added support for class/form field in User Defined Type (UDT) declaration.
- added support for object-typed fields with the ‘New’ modifier in UDT declarations.
- introduced new resource strings for customization within custom resource dictionaries.
fixed:
- error in the comparison Val(Value) = Trim(Value) where ‘Value’ is a VARIANT with a string.
- issue related to saving the single unsaved workbook when the compiled add-in is closed.
- errors in the implementation of run-time methods GetObject() and CreateObject().
- error in the implementation of the FormatDateTime() run-time method.
- parsing error related to the ‘On Error Goto <Long number>’ statement.
- issue arising when a public module function has parameters with implicit String type declaration using the ‘$’ symbol.
- error arising when cleaning a fixed array of UDT type using the ‘Erase’ statement.
v2.0 – 2023-05-30
implemented:
- compilation into a single file with embedded dll.
- option to change generated registration key file name that is used by default.
fixed:
- error in GetObject() function implementation.
- error in Input# statement.
- error in comparison of LongPtr vs Variant variables.
- some other errors that occur in compile time and run time.
v1.9.1 – 2023-02-11
implemented:
- GUI controls to support Visual C compiler as a backend C compiler.
- Preferences menu item with the Preferences dialog to set up the path to the Visual C compiler.
- support for hidden enum items like [_hiddenItem]
- LoadPicture, SavePicture methods
fixed:
- error that concerned same name parameters that were not supported in external dll method declarations.
- UBound, LBound functions which didn’t support UDT static array
- errors in Put#, Input# statements
- error in Shell() function implementation
- error in Case “0” to “9” expression
- error in ‘For Each’ loop by UserForms collection
- some other errors in compile time and run time
v1.8 – 2022-07-20
implemented:
- support of bulk registration key generation for VbaCompiler for Excel in BulkRegKeyGen utility.
- <?WBKPATH?> template to create relative paths for alternative compiled DLL location. This template is substituted by ThisWorkbook.Path value in run-time.
fixed:
- errors in ChDir(), ChDrive(), MkDir(), RmDir(), Round(), Shell(), Loc(), FileAttr() methods.
- errors in Input#, Line Input#, Write#, Print# statements.
v1.7 – 2022-06-10
implemented:
- New command line switches: ‘-cc’ and ‘-vcpath’. These switches are aimed to use Microsoft Visual C compiler as a back-end C compiler instead of MinGW GCC.
fixed:
- error in ReDim for arrays of Classes and Objects
- error with passing parameters in the CallByName runtime function
- error in the string comparison when “Option Compare Text” is used
- error in the GoTo statement C-code generation when the ‘OnError’ statement is used in a method
- error in UBound() when the parameter is of type Variant for an empty array
- error in C-code generation for the UDT array type which is used as a UDT field
- error in Trim$() when the parameter is of Object type
- error in the Erl() function
- error during the passing of parameters into ParamArray
- error in the Val() function
- error in the Print# statement
- some other errors that occur in compile time and run time.
v1.6 – 2021-06-16
implemented:
- Alternative path for registration key. This option may be used when VBA code is compiled with “Copy protection with registration key”.
If a registration key alternative path is set, then the registration key will be searched for in default location (in the folder where DLL with compiled VBA code is located), and if the regkey is not present in default location, then it will be searched for in the location mentioned in the alternative folder option. - Compilation work folder. If the work folder is set then all intermediate and temporarily files, which are created during VBA code compilation, will be located in that work folder. It gives a possibility to add this folder into the antivirus software exception list to reduce the antivirus software false positive detections during compilation.
fixed:
- some errors in compile time and run time.
v1.5 – 2020-10-27
implemented:
- Compilation mode for both 32-bit and 64-bit Excel. The option is available in the product registered with Professional license.
fixed:
- some errors in compile time and run time.
v1.4 – 2020-03-14
implemented:
- ‘Methods expose mode’ option. This option controls the way how the compiled VBA methods wrappers will be exposed in the connective VBA code.
The option is available in the product registered with Professional license.
added:
- VBA attribute [DNXVBC_VBA_EXPOSED_METHOD] to control VBA methods accessibility from connective code.
The attribute works in case if VBA code was compiled with registered version of the product.
fixed:
- some errors in compile time and run time.
v1.3 – 2020-01-18
implemented:
- Generation of compiled DLL file information as DLL version number and DLL file copyright.
- Performance improvement in run-time. Some algorithms speed up dramatically after compilation.
fixed:
- error when more than one UserForm instance of the same type is created.
- support of static variables.
- some compile time and run time errors.
v1.2.5 – 2019-10-12
fixed:
- error when New operator is used as method parameter.
- errors in C code generation for complex qualified names used to access class members and ActiveX methods in one expression.
- error in processing Debug.Assert expression.
- error when Not operator is used in method parameter.
- error for assignment expression: set obj(i) = something; where obj – is object with default method invocation.
v1.2.3 – 2019-08-08
implemented:
- warning message if target folder is not accessible for writing
- warning message if Excel (2007, 2010, 2013) doesn’t have the latest service pack installed
- performance improvement in run-time
v1.2 – 2019-07-25
implemented:
- run-time API functions IsVbaCompiled(), IsRegkeyAvailable(), IsTrialMode(),
GetTrialDaysLeft(), GetRegKeyFileName(), GetComputerId(), GetRegisteredName(),
GetRegisteredEMail(), GetDateFrom(), GetDateTo(), GetApplicationName();
see mdlDoneExVbaCompilerRtmAPI.bas module in installation folder >> ‘src’ sub-folder. - custom resource dictionary for translating or customizing content of run-time messages.
See english.txt and russian.txt resource dictionary examples in installation folder >> ‘rsc’ sub-folder. - template tag variables to use in customized resources.
fixed:
- VBA parser error for ‘do:’ expression in the first line position.
- VBA parser error for using ‘object’ word as name.
- errors in C code generation for complex qualified names used to access class member.
- run-time error in Format() function when the parameter is a Null string.
v1.1 – 2019-06-19
implemented:
- trial/demo feature for copy protection compilation mode.
- performance improvement for ActiveX functionality
fixed:
- memory leaking for UDT array when UDT doesn’t contain dynamic types
- error with passing array into named Variant parameter
- error related to the comparison of Variant type variable with all other built-in types.
- error with LongPtr type in run-time
v1.0.16 – 2019-05-13
fixed:
- errors related to the conversion of the ByRef VARIANT parameter into all other built-in types and back.
- errors related to the comparison of operators between ByRef VARIANT parameters and all other build-in types.
- errors related to the arithmetic operators with operands such as ByRef VARIANT parameter and all other build-in types.
v1.0.13 – 2019-04-05
fixed:
- error in build-log file generation when VBA module names contain non-English symbols.
- run-time error in Sgn() function when parameter is Nothing
- compilation time error in “On … GoTo” and “On … GoSub” statements
- run-time error in InStr() and InStrB() functions
v1.0.10 – 2019-03-28
fixed:
- error in UDT field static array
- error in 2-dimensional UDT arrays
added:
- compilation of VBA code with Japanese and Chinese symbols in names
v1.0.9 – 2019-03-21
fixed:
- error in case of identifier ambiguity
v1.0.8 – 2019-03-18
fixed:
- error in Sgn() function
- error in Select Case operator when selection is made by UDT array item.
- error when 2 or more workbooks with compiled VBA code are opened in the same Excel instance.
v1.0.7 – 2019-03-12
fixed:
- error in ‘for each’ loop for collection types inherited from “IEnumerable” type.
v1.0.6 – 2019-03-08
fixed:
- error when “Outlook.Application” object is used in VBA code
v1.0.5 – 2019-03-07
fixed:
- compilation error when Excel Solver is used and selected in VBA project references and “mdlExcelSolverAssistance.bas” module is not imported into VBA project. Now the “mdlExcelSolverAssistance.bas” module imported automatically if Excel Solver is selected in VBA project references.
v1.0.4 – 2019-03-06
fixed:
- unnecessary vertical scrolling in dialogs on HD displays with scaling
v1.0.3 – 2019-03-01
changed:
- all VBA code string literals are encrypted and saved in run-time storage and are unreachable and invisible in compiled DLL by viewing in HEX editor
v1.0 – 2019-02-13
added:
- compilation project setting to ‘create’/’save’/’open as’ a file with the “.vbcprj” extension.