strDesktop
retorna uma string sem um "\" final. Portanto, strDesktop & strZipFile
retornará uma string para um caminho que não existe.
Para ambas as concatenações, insira & "\"
(por exemplo, strDesktop & "\" & strZipFile
). Tanto quanto sei, o dobro "\" irá avaliar um único "\" em caminhos, pelo menos em alguns dialetos VB.
Eu também noto que você não testa a existência de arquivo antes de tentar descompactá-lo (o que realmente se refere ao erro) e que strDesktop
é atribuído ao valor de "MeusDocumentos" (não é um erro, mais como "set duck = horse")