Can you show how pdmBatchAdd is declared. BatchAdd has to be run initiated as a utility, in VB it looks like this (no idea what VAB requires):
batchAdder = vault2.CreateUtility(EdmUtility.EdmUtil_BatchAdd)
Here's how I get my batchAddr... The key here is in SolidWorks VBA you have a PDM Type Library reference, but in a VBA Convert script you loose all your types... enumerations, interfaces, datatypes, etc.
' Grab the batch add utility
Dim pdmBatchAdd As Object 'IEdmBatchAdd2
Dim utility As Long
utility = 16 ' EdmUtil_BatchAdd
Set pdmBatchAdd = pdmVault.CreateUtility(utility)
This all worked fine, but couldn't get CommitAdd() to work. So abandoned code and got it working with IEdmFolder::AddFile(). Appears the more complex data types don't easily migrate across the COM interface. I would imagine if I was a VBA guru, there's some sort of conversion I could do.