Faster: I agree with cap - they're the same
More Efficient: Define "more efficient". In general, you would probably be better off with VBA since with VBA code you could focus your code exactly where it needs to be. Macros are understandably more generic in scope, since they must take into account many more variables than would VBA code. For example, a macro must be able to handle all Datatypes, and therefore would use the less efficient Variant datatype. With your VBA code, you could declare your variables as a specific datatype, and eliminate the need for VBA to manage overhead for that Variant datatype.