The Excel CALL function invokes a procedure inside a dynamic link library (DLL) or code resource — or a procedure previously registered with REGISTER / REGISTER.ID. It is an advanced, macro-era function that runs external code, so it is disabled or tightly restricted in most modern, security-hardened Excel installations.
Syntax
| Argument | Description | |
|---|---|---|
register_id / module_text | Required | Either the register ID returned by REGISTER / REGISTER.ID, or the name of the DLL / code resource that contains the procedure. |
procedure | Optional | The name (or ordinal) of the procedure within the DLL. Used only in the form that registers and calls in one step. |
type_text | Optional | A text string describing the data types of the return value and each argument the external procedure expects. |
arguments, ... | Optional | The values passed to the external procedure, matching the types given in type_text. |
How to use it
CALL is part of Excel's legacy macro-sheet function family. It exists to hand data to compiled code in a DLL or code resource and read the result back — the kind of thing that, today, is done with VBA, an Office Add-in, or an XLL written against the modern C API.
It is normally paired with REGISTER.ID: you register the external procedure once to get a register ID, then pass that ID to CALL.
This is a security-sensitive function. Because CALL can execute arbitrary native code, modern Excel blocks it in ordinary worksheet cells — it generally works only from within an XLL or a macro sheet and is often disabled entirely by Trust Center / IT policy. In a normal worksheet you will usually get an error, and you should not rely on it for everyday work.
If you are looking at an old workbook that uses CALL, the practical modern replacements are VBA, a JavaScript Office Add-in, or a properly built XLL add-in — not CALL in a cell.
Try it: interactive demo
Pick a CALL example to see the formula and its result.
Practice workbook
Frequently asked questions
Is CALL safe to use, and will it work in my worksheet?
Why do I get an error when I use CALL?
type_text does not match the procedure's real signature. Because the call reaches outside Excel, the failure modes are stricter than a normal formula.Do I need an add-in or anything special to use CALL?
What replaced CALL? What should I use instead?
LAMBDA and Power Query remove the need for external code altogether.Master functions like this in one day
This page covers one function. Our Excel Formulas and Functions class covers the 30 that matter most — live, hands-on, taught by professionals in Dallas–Fort Worth, Houston, Austin, Oklahoma City, Denver, or online.
See the Formulas & Functions Class