Most variables use the underlying variant type in VB/VBA. I think you will find the performance to be MUCH faster if you use a loop to populate an array on the VB side, and then pass that array, as opposed to setting cell values individually. The inter-process communication time between automation calls will cause a dramatic slowdown when using the individual cell case.
In the example that I referenced, it is true that I create the arrays as Double or String. However, they are passed as variant arrays (the conversion is implicit). If you look at the method signature for SetDataVector in the object browser, you will see that JMP is in fact expecting a variant array. So, you should at least try just passing your variant array from the Excel range to JMP. If the type can't be implicitly converted, then you will have to copy the elements individually.
Brian Corcoran
JMP Development