Looks really good to me - well written. Just one comment in regards to syntax though ... this last line:

Return $ChangeVLKey

You might was well just remove the $ChangeVLKey altogether - the Return statement doesn't take arguments. The only reason that $ChangeVLKey didn't dump its contents to the console is because the script returned before it had a chance to.