VBScript – Guardar los Archivos Adjuntos en Carpetas Especificas Automáticamente Outlook

El siguiente VBScript crea una carpeta con el nombre del Asunto (Subject) y guarda los archivos adjuntos que contiene el correo automáticamente.

Instrucciones de Uso

1.- Abrir el editor de Visual Basic (ALT+F11).

2.- Insertar un modulo nuevo (Insert > Module).

3.- Copiar el código VBScript.

4.- En la linea 7 debemos especificar la ruta donde se guardaran los archivos.

Para mas información de configuración ver: Como utilizar el Editor VBA en Office (Utilizar Macros VBScript) y Outlook – Crear y configurar reglas

Código

Public Sub saveAttachToSpecificFolder(itm As Outlook.MailItem)
Dim objAtt As Outlook.Attachment
Dim saveFolder As String
Dim getSubject As String
Dim dDate As Date

destinationFolder = "C:\1-Tests\"
getSubject = itm.Subject
dDate = itm.ReceivedTime
ReplaceIllegalChars getSubject, "-"
saveFolder = destinationFolder & Format(dDate, "yyyy-mm-dd") & Format(dDate, "-hhnnss") & "-" & getSubject

'Objeto crear folder
Set fso = CreateObject("Scripting.FileSystemObject")
' Crear Folder
If Not fso.FolderExists(saveFolder) Then
Set objFolder = fso.Createfolder(saveFolder)
End If
 
     For Each objAtt In itm.Attachments
          objAtt.SaveAsFile saveFolder & "\" & objAtt.DisplayName
          Set objAtt = Nothing
     Next
End Sub
  
Private Sub ReplaceIllegalChars(getSubject As String, _
  sChr As String _
)
  getSubject = Replace(getSubject, "/", sChr)
  getSubject = Replace(getSubject, "\", sChr)
  getSubject = Replace(getSubject, ":", sChr)
  getSubject = Replace(getSubject, "?", sChr)
  getSubject = Replace(getSubject, Chr(34), sChr)
  getSubject = Replace(getSubject, "<", sChr)
  getSubject = Replace(getSubject, ">", sChr)
  getSubject = Replace(getSubject, "|", sChr)
  getSubject = Replace(getSubject, "*", sChr)
End Sub

 

Califica este articulo

Fernando O.

Soy analista de sistemas actualmente trabajo en una empresa con mas de 200 empleados que utilizan equipo de computo al cual se les da soporte en el departamento.
Uno de mis pasatiempos fuera de la empresa es escribir artículos para PortalMasTips donde documento los problemas, inquietudes y detalles interesantes que se presentan.

13 comentarios en “VBScript – Guardar los Archivos Adjuntos en Carpetas Especificas Automáticamente Outlook

  1. Hola!

    Mil gracias por colaborarme con esta solicitud, el script funciona perfecto y ya no tengo ningún inconveniente con los correos reenviados, detecte que me seria muy útil que cada carpeta tuviera la fecha antes del asunto del correo pero soy muy nueva utilizando VB y aun no he podido, agradecería mucho tu ayuda para obtener en las carpetas algo así ” 20 05 2016 – asunto del mensaje”, Te comento que ya compartí el articulo en G+, es muy útil.

    • Buen dia!
      Se realizo una modificación en las lineas 5 y 11 para agregar la configuración que deseas, en base a esto podridas manipular a tus necesidades cambiar los – por algun otro caracter aceptado, por el momento lo visualizaras 2016-05-20-122930 que es Año-Mes-Dia-horaminutosegundo.

      Muchas gracias por compartir el articulo.

      Nos comentas los resultados.

  2. Estimado Fernando, esta vez no te realizo consulta alguna, solo escribo esta lineas para desearte que estos dias de Diceimbre aparte de tener tabajo, tengas salud y felicidad con los tuyos, mis mejores deseos y que sigas asi con tu blog ya que seguido me doy una vuelta por aqui.

    Feliz Año 2017.

    Atte.

    Humberto Morales

  3. esta muy bien esta idea y me sirve , solo que me genera la carpeta sin contenido y aparte me genera el archivo adjunto y tengo que estar borrando las carpetas para dejar los adjuntos solamente

Deja un comentario...

Compartir
Twittear
+1
Compartir
Pin
Stumble