Is there a built-in way to URL encode a string in Excel VBA or do I need to hand roll this functionality?
The VBA-tools library has a function for that:
http://vba-tools.github.io/VBA-Web/docs/#/WebHelpers/UrlEncode
It seems to work similar to encodeURIComponent() in JavaScript.
encodeURIComponent()