Establecer directorios y la instrucción If Len (Dir (... en VBA

Tengo un archivo debajo de esta ruta:

//path/folder1/folder2/datafile.gdp

Es una entrada a un programa externo que se llama desde vba de esta manera:

Sub RunProgram()
Dim wsh As Object
SetCurrentDirectory "\\path\"
ChDir "\\path\folder1\folder2\" 'Set Directory
Set wsh = VBA.CreateObject("WScript.Shell")
check = CurDir
Statusnum = wsh.Run(Command:="program.exe ""\\path\folder1\folder2\datafile.gdp""", WindowStyle:=1, waitonreturn:=True)

Pero en la línea final, incluyendo \ ruta \ carpeta1 \ carpeta2 \ antes de que el nombre del archivo de entrada parezca causar que el programa externo quiera escribir algunos archivos en un directorio duplicado que no existe, causando un error. Solía funcionar en este formato antes de que el .exe fuera actualizado por una compañía externa. Ahora quiere escribir algunos archivos aquí, todos con el prefijo del nombre de mi archivo de entrada:

\\path\folder1\folder2\PATH\FOLDER1\FOLDER2\

Con la esperanza de arreglar esto, cambié la línea final del código a esto, siguiendo algunos comentarios en una publicación anterior aquí en SO:

Statusnum = wsh.Run(Command:="program.exe ""datafile.gdp""", WindowStyle:=1, waitonreturn:=True)

Dado que el directorio está configurado correctamente antes de llamar al .exe, pensé que eliminar la ruta del archivo de entrada resolvería el problema.

El programa ahora se inicia, pero no parece cargar el archivo de entrada con él y ya no ejecuta cálculos automáticamente en segundo plano como debería. En su lugar, se inicia y la ventana principal .exe aparece al usuario como si acabara de iniciarse para configurar un nuevo proyecto, los cálculos no se realizan automáticamente.

Para verificar desde qué directorio el código VBA intentaba extraer mi datafile.gdp, creé estos bucles directamente antes de llamar al .exe:

If Len(Dir("\\path\folder1\folder2\datafile.gdp")) = 0 Then
    FileIsMissing1 = True 'I use Excel-VBA watches to break if true
End If

If Len(Dir("datafile.gdp")) = 0 Then
    FileIsMissing2 = True 
End If

Curiosamente, ninguno de estos bucles causa un descanso. El archivo solo existe en

\\path\folder1\folder2\datafile.gdp

No en el directorio duplicado ... entonces, ¿por qué se satisfacen ambas afirmaciones? ¿Entrar en el directorio no hace ninguna diferencia incluso cuando se ha configurado el directorio actual? El directorio actual parece estar afectando la línea:

Statusnum = wsh.Run(Command:="program.exe ""\\path\folder1\folder2\datafile.gdp""", WindowStyle:=1, waitonreturn:=True)

Pero no estos bucles if, y no estoy seguro de por qué.

Respuestas a la pregunta(0)

Su respuesta a la pregunta