Tecnología

Inicio

Cómo copiar carpetas usando VBA

Cómo copiar carpetas usando VBA


Visual Basic para Aplicaciones, o VBA, es un lenguaje de programación integrado en la mayoría de las aplicaciones de Microsoft Office. Con él, se pueden crear macros y funciones para automatizar diversas tareas. VBA viene con una amplia gama de objetos y funciones que pueden ayudarle a trabajar con sus documentos más rápido y más eficientemente. Con su clase FileSystemObject, también se puede manipular archivos y carpetas en cualquier lugar de su ordenador desde cualquier aplicación de Office. Mediante la creación de una sola macro VBA y asignar un comando de teclado a ella, puede copiar más fácilmente, organizar y crear copias de seguridad de tus carpetas.

Instrucciones

1 Iniciar cualquier aplicación de Microsoft Office, como Word o Excel. Pulse la tecla "Ctrl" y "N" para crear un nuevo documento. Para utilizar un documento existente en cambio, pulse la tecla "Ctrl" y "O", seleccione el archivo y, a continuación, haga clic en "Abrir".

2 Prensa "," Alt "y" F11 "para abrir el Editor de Visual Basic, o VBE. En el panel" Explorador de proyectos ", seleccionar el proyecto de VBA que contiene el nombre del archivo del documento.

3 Haga clic en "Insertar" y luego seleccione "Módulo". Esto se suma "Module 1" a la lista de módulos en el panel "Explorador de proyectos". Haga doble clic en "Module 1", a continuación, introduzca el código siguiente en el editor.

CopyFolders sub ()

foldernames = Array ( "C: \ Carpeta1", "C: \ Carpeta2")

dest = "C: \ destino"

Para cada s En foldernames

Call CopyF(s, dest & "\")

s próximos

End Sub

4 Reemplazar "C: \ Carpeta1" y "C: \ Carpeta2" con las carpetas que desea copiar. Para añadir otra carpeta a la lista, escriba una coma y luego insertar la ruta completa a la carpeta antes del paréntesis de cierre de la función "Matriz". Asegúrese de incluir las letras de unidad y para encerrar los caminos entre comillas.

5 Reemplazar "C: \ destino" con la ruta completa al directorio donde desea enviar copias de sus carpetas. Asegúrese de incluir la letra de unidad y encerrarlo entre comillas.

6 Haga clic en "Insertar" y luego seleccione "Módulo". Esto se suma "Module2" a la lista de módulos en el panel "Explorador de proyectos". Haga doble clic en "Module2", y luego introduzca el código siguiente en el editor.

Public Sub CopyF (ByVal sfol como secuencia, de ByVal como secuencia dFol)

c = Len (sfol) - Len (Reemplazar (sfol, "\", "", 1))

fName = Mid (sfol, InStr (1, Application.Substitute (sfol, "\",

"", c), "") + 1)

dest = dFol y fName

Set FSO = CreateObject ( "Scripting.FileSystemObject")

Si no es así fso.FolderExists (dest), entonces

fso.CopyFolder sFol, dFol

Más

uRes = MsgBox(dest & " already exists. Overwrite?", vbYesNo + vbQuestion)

Si Ures = Entonces vbYes

fso.CopyFolder sfol, dFol

Más

Ir EndScript

Terminara si

Terminara si

EndScript:

Set FSO = Nada

End Sub

7 Pulse la tecla "F12". Introduzca su nombre de archivo preferido en el cuadro "Nombre de archivo" y haga clic en el menú desplegable junto a "Guardar como tipo". Seleccione "Libro de Excel habilitado para macros" (si está utilizando Excel) o "documento de Word Macro-Enabled" (si está usando Word). Haga clic en "Guardar".

8 Pulse la tecla "Alt" y "Q" para cerrar el VBE.

9 Pulse la tecla "Alt" y "F8" para abrir la ventana de "macros". Seleccione "CopyFolders" de la lista y haga clic en "Ejecutar".

Consejos y advertencias

  • De forma predeterminada, las macros están deshabilitadas para aplicaciones de Microsoft Office, que pueden impedir que la creación y ejecución de cualquier rutina de VBA. Para habilitarlos, haga clic en el botón de Microsoft Office y, a continuación, pulse "I." En la sección "populares", seleccione "Mostrar ficha Programador en la cinta." Ir a "Centro de confianza" y haga clic en "Configuración del Centro de confianza." Haga clic en "Configuración de macros" y luego seleccione "Habilitar todas las macros". Haga clic en "Aceptar" para guardar los cambios y reiniciar la aplicación de Office que está utilizando.