Also, do you think it would help performance to use a long array instead of a variant to hold the look up data?

This was a timely kick in the right direction.

Why am I mucking around with a Variant Array, here?

I'm not sure I like the prospect of stacking an array of longs, but, seeing as I am talking about working with a Byte Array, why not go Byte Array to Byte Array? Just not seeing the forest through the trees...

On an average of 30 times, it clocks in at 0.0088 Seconds, as opposed to 0.010 seconds for the mid & concatenate approach, and the performance gain should grow with Str size. This does speak to the OPs question.

Looking at your revised Mid$() approach, I would think it would be faster, but I haven't tested it yet...