Migrating from DVDAddin .xlam (VBA) to the .xll build (2.8.3)
A migration guide from the old version (Excel VBA .xlam) to the current version (Excel-DNA .xll, written in C# / .NET 8).
Why migrate
The old .xlam build used VBA, stored its settings with SaveSetting/GetSetting and was activated with an offline key. The current build has dropped VBA entirely: every command, dialog and UDF has been rewritten in C# and packaged into a single .xll file loaded by Excel-DNA.
What the new build has:
- Two ribbon tabs, DVD Addin (office tools) and DVD Cons (construction), with 186 commands in total — see the Full command reference.
- 47 UDFs registered in the DVD Functions category, with IntelliSense and the
fxargument dialog — see UDF functions. - Asynchronous functions: DVDFx and dvdAIExplain show
#N/A waiting...and then update themselves, without locking Excel while they wait on the network. - Activation with an account (email + password) through the license server, instead of an offline key.
- Four AI providers: Gemini / OpenAI / Groq / NVIDIA, chosen in Preferences ▸ AI Assistant.
- A bilingual Vietnamese / English interface, switched with the Lang: EN command.
- A Check Update command that checks for a new version, and Download Tool that opens the installer download link directly.
In exchange:
- .NET 8 is required (the installer includes the check and installs it if needed).
- Runs on Windows only — it cannot be used with Excel for Mac.
- Old VBA macros that call commands through
DVDAddin.xlam!…will no longer run (see Workbooks automated with VBA below).
Before you migrate
Step 1 — Back up important Excel files
Back up the project folder before installing. Workbooks that contain old =dvd… formulas should be opened after the install to check whether the functions still return values or report #NAME?.
Step 2 — Remove the old .xlam
Option 1 — Through the Excel Add-in Manager
- Open Excel → File → Options → Add-ins.
- Manage = Excel Add-ins → click Go.
- In the list:
- Untick
DVDAddin.xlam(if it is there). - Click Remove to take it off the list.
- Untick
Option 2 — Delete the file manually
The .xlam file is usually at:
%APPDATA%\Microsoft\AddIns\DVDAddin.xlamor in the folder you pointed to at install time. Delete the file, then restart Excel.
Step 3 — What to know in advance about the old license
The .xlam build used VBA's SaveSetting, so it stored the activation state in two registry values under VBA's own root:
HKCU\Software\VB and VBA Program Settings\DVDAddin\Key Type
HKCU\Software\VB and VBA Program Settings\DVDAddin\Expiration DateThe .xll build still copies these two values to the new root HKCU\Software\DVD\DVDAddin\… (see Settings that carry over), but no longer reads them to decide licensing — the system has moved to online accounts (a license.dat file in %LocalAppData%\DVDAddin plus a JWT from the server). So after installing you must sign in again with your email and password in the License dialog.
If your old license is still valid, contact the Zalo support group or +84 988 909 382 with the old license details to be guided through the conversion.
Install the new build
Step 1 — Download the installer
Use the Download Tool command (if the old add-in still runs on the machine), or go straight to the Releases section of the github.com/dangdvd/DVDAddin repository and download DVDAddin.rar.
Extract it with WinRAR or 7-Zip to get the installer file DVDAddin-Setup-<version>.exe.
Step 2 — Close every Excel window, then run the installer
Required
Close every Excel window before installing. If an Excel process is still running, the .xll file that is loaded stays locked and the old add-in remains in memory — you will end up seeing "I installed the new build but the bug is still there".
The installer places the add-in in C:\DVDAddin\ (not Program Files), together with the Template\ and Library\ folders holding the sample files and the norm data.
→ Details: Installation.
Step 3 — Activate the license
Open Excel → the DVD Addin tab → the About group → License → enter your email and password → Sign in.
→ Details: Activate license.
Command mapping: xlam → xll
Most ribbon buttons keep their Vietnamese names, but the group layout has been rearranged into 2 tabs. The quickest ways to find a familiar command again:
- Press Ctrl + Shift + Q (Find Cmd), type a few letters of the command name and press Enter.
- Or look it up in the Full command reference — the complete list of 186 commands, arranged by the exact ribbon tab and group.
New commands that did not exist in the .xlam build
| Command | Location |
|---|---|
| AI Chat + Explain formula (Coach), Fix formula error, Grammar, Solver | DVD Addin ▸ AI ▸ AI Menu |
| DVD Chat — team chat inside Excel | DVD Addin ▸ AI |
| Transcribe Audio | DVD Addin ▸ File and Print ▸ File Tools |
| PDF Manager, OCR file, Extract Table, OCR Screen Clip | DVD Addin ▸ File and Print ▸ PDF / OCR |
| Capture and Annotate | DVD Addin ▸ Graphics ▸ Insert Pic Menu |
| Auto Click | DVD Addin ▸ Graphics ▸ Shape Menu |
| Bulk find / replace, Smart Data Cleaning | DVD Addin ▸ Text and Number ▸ Text ops |
| Connect — teamwork over LAN / internet | DVD Cons ▸ Connection |
| The PRO schedule command set: EVM Report, Health Check, Baseline, 3-Week Lookahead, Export XML (P6/MSP), Import XML (P6/MSP)… | DVD Cons ▸ Schedule |
| The QS command set: Interim Payment, Compare BoQ, Variation Register, AI Construction Estimate | DVD Cons ▸ QS |
UDF mapping: xlam → xll
Function names
All 47 functions in the new build start with the dvd prefix (DVDFx alone capitalizes the first three letters). Excel function names are not case-sensitive, so =dvdvnd(F42), =DvdVnd(F42) and =dvdVnd(F42) give the same result — you do not need to run a Find & Replace to change the casing.
What you do need to check is whether the function still exists. After installing, open the old workbook and press Ctrl + F to search for #NAME?: every cell reporting that error is calling a function that is no longer registered.
Quick cross-reference for common functions
| What you need to do | Function in the new build |
|---|---|
| Spell a VND amount out in words | dvdVnd |
| Spell a USD amount out in words | dvdUsd |
| Strip Vietnamese diacritics | dvdUnDiacriticsVi |
| Convert VNI / Telex to Unicode | dvdUniConvert |
| Join strings from a range | dvdTextJoin, dvdConcatIF, dvdJoinIF |
| Sum / count by cell fill color | dvdSumIfColor, dvdCountIfColor |
| Sum while skipping hidden / filtered rows | dvdSumVisible |
| Look up across every sheet of the workbook | dvdLookupAllSheets |
| Return every matching value | dvdMVLookup, dvdMCLookup |
| Convert lunar ⇄ solar dates | dvdSolarToLunar, dvdLunarToSolar |
| Translate the text in a cell | dvdTranslate |
The full catalog with argument names: UDF functions.
Argument separator
The new build registers its functions through Excel-DNA, so the argument separator follows the Windows Regional format exactly like the built-in functions: the Vietnamese format uses ;, English (US) uses ,. If you copy a formula from this documentation onto a machine set to a different format, change the separator to match.
Workbooks automated with VBA
The .xlam build allowed DVDAddin commands to be called from a VBA macro like this:
Sub MyMacro()
Application.Run "DVDAddin.xlam!<OldMacroName>" ' No longer works
End SubThis way of calling no longer works because the .xlam file no longer exists — Excel will report that it cannot find the macro.
Replacements
Option A — Call a macro registered by the .xll build
The .xll build registers a number of fixed-name macros to serve the keyboard shortcuts; VBA can call these names with Application.Run (without the file-name prefix).
Macros that invoke a ribbon button directly:
| Macro name | Equivalent command |
|---|---|
DvdShortcut_FormulaViewer | Formula View |
DvdShortcut_CopyPasteVisible | Copy/Paste visible |
DvdShortcut_MultiRangeCopy | Copy/Paste visible — same command, different key |
DvdShortcut_SmartCase | SMART case (AI) |
DvdShortcut_AutoFitMerge | AutoFit merged |
DvdShortcut_Navigation | Navigation |
DvdShortcut_MoveShape | Move/Resize |
DvdShortcut_RegularItalic | Italic |
DvdShortcut_InsertCopy | Insert and Copy |
DvdShortcut_Translate | Translate |
DvdShortcut_ExplainFormula | Explain formula (Coach) |
DvdShortcut_MergeWord | Merge to Word |
DvdShortcut_OcrScreenshot | OCR Screen Clip |
DVDAddin_MergeKeepDataShortcut | Merge keep data |
DVDAddin_QuickInputShortcut | Quick Input |
DVDAddin_SheetToPdfShortcut | Sheets → PDF |
DVDAddin_ReverseTextShortcut | Text Reverse — asks for the separator character, then reverses |
ShowQuickActions | Find Cmd |
ShowFormulaViewer | The Formula Trace window |
ShowLiveDependents | Dependents |
JumpToAnyLookupSource | Lookup Trace |
OpenPdfManager | PDF Manager |
ReadPdf | Read PDF |
Macros with no ribbon button (they exist only as a shortcut / macro):
| Macro name | What it does |
|---|---|
DvdShortcut_FormatPainter | Invokes Excel's Format Painter |
DvdShortcut_AiInline | Takes the current cell as the question and writes the AI answer into the cell right below |
DvdShortcut_CycleHAlign | Cycles horizontal alignment: left → center → right |
DvdShortcut_CycleVAlign | Cycles vertical alignment: top → middle → bottom |
DvdShortcut_HighlightYellow | Toggles a yellow fill on the selection |
DvdShortcut_CycleCase | Cycles letter case: UPPERCASE → Title Case → Sentence case → lowercase |
DvdShortcut_TranslateVI / DvdShortcut_TranslateEN | Quickly translates the selection with Google Translate, overwriting in place |
DvdShortcut_ReverseAfterDelim | Swaps the two halves around the first delimiter found (-, –, —, , , /, space) |
DvdShortcut_Custom1 … DvdShortcut_Custom10 | 10 slots the user assigns in Preferences ▸ Shortcuts |
Sub MyMacro()
Application.Run "DvdShortcut_AutoFitMerge"
End SubThe remaining commands do not have a public macro name yet — use the ribbon button or the keyboard shortcut. If you need to run any command from a key, assign it to a custom slot and call the matching DvdShortcut_CustomN.
Option B — Move the logic into formulas
Many jobs the old VBA macros did with loops now have a matching UDF (conditional string joins, summing by color, multi-result lookups…). Putting a formula in a cell is usually tidier and easier to check than a macro.
Option C — Auto Click
For sequences of purely user-interface actions, Auto Click records the coordinates of each click into a table on the sheet (No. / Timestamp / X / Y / Wait), lets you edit them by hand, then replays them for a given number of loops. This is the solution for software outside Excel, not a way to call DVDAddin commands.
Option D — Contact support
If you have a complex VBA workflow tightly bound to the old add-in, contact the Zalo support group or +84 988 909 382 for advice.
Settings that carry over
What migrates automatically
The .xll build has a one-time settings-migration routine that runs the first time Excel opens after the install. It copies the values from the two old registry roots to the new one:
| Old root | Era |
|---|---|
HKCU\Software\VB and VBA Program Settings\DVDAddin\… | The .xlam build (VBA SaveSetting) |
HKCU\Software\DVDAddin\… | The earliest C# build |
→ all of it is written to the current root HKCU\Software\DVD\DVDAddin\….
The values that are migrated: Preferences, API Keys, Model, Temperature, Service, SyncConfig, GanttSettings, ParamsGemini, Key Type, Expiration Date.
Three things worth knowing about this routine:
- It runs exactly once per Windows account — after that it writes a marker and skips the step on later launches.
- It does not overwrite values that already exist at the new root.
- It does not delete the old keys, so if you go back to the old build its settings are still intact.
Because of this, the Gemini/OpenAI/Groq API keys, the selected model, the default translation language and the Gantt settings are usually already in place on the first run.
What you have to redo
- License — you have to sign in again with your email and password. The
Key Type/Expiration Datevalues are copied over, but they are no longer used to determine licensing. - Connect (Kết nối Server) — sign in again for the teamwork session.
- Interface language — stored in
%APPDATA%\DVDAddin\lang.txt, changed with the Lang: EN command.
After migrating — a quick check
- Open Excel and confirm both ribbon tabs are there: DVD Addin and DVD Cons.
- Go to the About group ▸ About to check the version number that is running.
- Open an old workbook and search for
#NAME?to spot functions that no longer exist. - Open Preferences ▸ AI Assistant to check whether the API keys were carried over.
- Open Preferences ▸ Shortcuts to review the 21 default shortcuts and remove any that clash with your habits.
Related
- Installation — installer details.
- License — activating the new license.
- Cheatsheet — shortcuts, paths, function syntax.
- Full command reference — 186 ribbon commands.
- UDF functions — 47 functions.
- FAQ — frequently asked questions.
- Troubleshooting — error details.
If you run into difficulty during the migration → Zalo support group or +84 988 909 382.