Firstly, I am not a fan of automating AutoCAD from another application (in your case, I guess, it is user uses Excel's VBA to control AutoCAD). If the Excel is mainly used to provide data from AutoCAD to run, it would be much better to let user ONLY run AutoCAD, which access data in Excel sheet (which, in turn, may not even need to have Excel running), so user only deals/faces/uses one application. Not to mention the huge speed difference.
Anyway, if you need to make AutoCAD to run some VBA macros from external application, you can only call LoadDVB() (if the DVB file is not loaded on startup) and then call RunMacro(). And as you know VBA macro does not take parameters.
Obviously, the the VBA macro is supposed to do something in AutoCAD according to some data, the macro itself needs to get input somehow during its execution (showing userform for input, reading data from DB/file...). Of course you may have other "smaller" macros, which is called by other Macros and expects some needed data available when being called.
Back to your question, a simple way to pass data/paramters from outside app into AutoCAD and allow VBA macro to pick them up would be to use AutoCAD's user variables (USERSx, USERRx, USERIx), like this:
In your external App (Excel VBA)
Dim cadApp As AcadApplication
Dim dwg As AcadDocument
set cadApp=....
set dwg=cadApp.ActiveDocument '' or cadApp.Documents.Open(....)
Dim origVal As String
origVal=dwg.GetVariable("UserS1")
dwg.SetVariable "UserS1","MyTextValue"
cadApp.LoadDVB "........."
cadApp.RunMacro() '' This macro would need to read data from "UserS1" first, as input
dwg.SetVariable "UserS1", origVal
Then in the AutoCAD VBA, you woudl have a macro:
Public Sub DoWork()
Dim param As Striing
param=ThisDrawing.GetVariable("UserS1")
'' Do real work based on the input
End Sub
If the amount of input data is huge, or is quite complicated, you could let your external all write the data into a file (Text/Xml), before let AutoCAD run its macro. Then the the AutoCAD macro, it would read the data from the file first and do AutoCAD business based on the data.
Writing DLLs that can be shared/references by both AutoCAD VBA and Excel VBA would make data transfer between easier. But it would not change the fact the 2 applications must communicate between 2 separated proccesses, thus very slow. Also, since both VBA use COM APIs, VB.NET (or current Visual Studio) is for .NET, the DLLs created MUST be exposed as COM, which make things unnecessarily complicated.
In most cases, if I were you, I would focus the application on AutoCAD side, using AutoCAD .NET API and not waste time on AutoCAD VBA (then, I do not know much what situation you are in).