2009-06-10 12 views
14

En general,VBA ¿Cómo acceder a la carpeta de datos de la aplicación Usuarios actuales?

Al usar VBA, ¿cómo puedo determinar dónde se encuentra la carpeta de datos de la aplicación de los usuarios actuales?

Los FileSystemObjects carpetas especiales sólo sabe de 3 carpetas

  • WindowsFolder
  • SystemFolder
  • TemporaryFolder

Específicamente, necesito una macro de Word para copiar un archivo a la una carpeta bajo la carpeta de Datos de la aplicación.

p. Ej. En VB.Net puedo usar My.Computer.FileSystem.SpecialDirectories.CurrentUserApplicationData para hacer esto

Respuesta

26

Puede usar Environ("AppData") para obtener esta ruta. Environ extraerá cualquier variable del sistema, que se puede encontrar utilizando el comando set en el indicador de DOS.

+0

Nunca pensé en comprobar las cadenas de entorno, esto funciona un regalo, gracias :) –

+1

Creo que el enfoque Environ() no es confiable ya que las variables de entorno pueden ser modificadas por el usuario y pueden conducir a resultados inesperados. Usar la API de Windows podría ser mejor. Aquí hay un ejemplo para encontrar la carpeta Documentos/Mis documentos: http://dailydoseofexcel.com/archives/2009/02/26/get-the-path-to-my-documents-in-vba/#comment-38211 Si puede encontrar una manera de hacerlo para la carpeta AppData podría ser una mejor manera. – authentictech

7

Usando advapi32.dll, usted puede conseguir el USERPROFILE través

Environ("USERPROFILE") 

Conectar esto con el directorio "Datos de programa" (que tiene un estándar, el nombre específico) para obtener lo que desea

CStr(Environ("USERPROFILE") & "\Application Data") 

Para obtener más información, consulte MSDN

Cuestiones relacionadas