Guardar como en Microsoft Excel VBA

Bilal Shahid 21 junio 2023
  1. ¿Qué es la función SaveAs en VBA?
  2. Ejemplo 1: guardar un libro de trabajo
  3. Ejemplo 2: crear un nuevo libro de trabajo y guardarlo
  4. Ejemplo 3: Guardar el libro de trabajo activo
  5. Ejemplo 4: Guardar todos los libros de trabajo activos
  6. Ejemplo 5: Utilice los parámetros de la función SaveAs
  7. Conclusión
Guardar como en Microsoft Excel VBA

VBA proporciona a los desarrolladores una variedad de funciones y características diferentes. Este artículo aprenderá sobre el método SaveAs en VBA.

¿Qué es la función SaveAs en VBA?

El método SaveAs guarda un objeto de libro de trabajo en un destino de ruta especificado en Excel VBA. Un libro de trabajo es un archivo de Excel que contiene las hojas en las que está trabajando.

Estos libros de trabajo contienen datos importantes, y podemos usar la función Guardar como para guardarlos en su computadora.

Nota: VBA también tiene una función Guardar para guardar un archivo, pero no ocupa una ubicación específica. Además, si desea guardar sin escribir el código, puede hacerlo manualmente usando las opciones Guardar y Guardar como en el menú Archivo o usando Ctrl+S.

Sintaxis

La sintaxis de la función SaveAs en VBA es la siguiente:

expression.SaveAs (FileName, FileFormat, Password, WriteResPassword, ReadOnlyRecommended, CreateBackup, AccessMode, ConflictResolution, AddToMru, TextCodepage, TextVisualLayout, Local)

Veamos los parámetros de la función:

  1. Expresión: el nombre de la variable representa el objeto del libro. Por ejemplo, podemos usar la variable ActiveWorkbook para especificar el libro de trabajo actualmente abierto.
  2. FileName: Este es el nombre del archivo que desea guardar, incluyendo opcionalmente la ruta. El archivo se guardará en la carpeta actual si no se indica la ruta.
  3. FileFormat: Esto indica el formato en el que desea guardar el archivo, que también determinará la extensión. Si no se especifica y está guardando su archivo por primera vez, el formato utilizado será la versión de Excel en uso.
  4. Contraseña: si desea mantener una contraseña en su archivo, puede especificarla aquí en una cadena de 15 caracteres o menos.
  5. WriteResPassword: esta contraseña se utiliza para la reserva de escritura. Si alguien quiere editar el archivo, deberá proporcionar esta contraseña o se abrirá en modo de solo lectura.
  6. ReadOnlyRecommended: si se envía True aquí, se mostrará un mensaje cuando se abra el archivo, diciendo que se recomienda abrir este archivo en modo de solo lectura.
  7. Crear copia de seguridad: se creará un archivo de copia de seguridad si se envía True aquí.
  8. AccessMode: aquí puede especificar el modo de acceso para guardar, como exclusivo o predeterminado.
  9. ConflictResolution: este parámetro especifica cómo el método SaveAs resolverá los conflictos que se produzcan al guardar el archivo. Una opción, por ejemplo, es proporcionar un cuadro de diálogo para que el usuario decida.
  10. AddToMru: El valor predeterminado para esto es False, pero puede indicar True si desea agregar este archivo a la lista de usados recientemente.
  11. TextCodepage: este parámetro se ignora en Excel para todos los idiomas.
  12. TextVisualLayout: este parámetro también se ignora en Excel para todos los idiomas.
  13. Local: el valor predeterminado para esto es False, que guarda el archivo en el idioma de VBA, es decir, inglés de EE. UU. Enviar un True aquí guardará el archivo en el idioma de Microsoft Excel.

Nota: Todos los parámetros de la función Guardar como son opcionales y no es necesario escribirlos.

Ahora que conoce la sintaxis del método SaveAs, veamos algunos ejemplos para ayudarlo a comprenderlo mejor.

Ejemplo 1: guardar un libro de trabajo

Este ejemplo muestra cómo puede guardar un libro de trabajo en una ubicación particular utilizando el método SaveAs especificando su nombre. El código para esto es el siguiente:

Sub Example1()
Workbooks("Example.xlsm").SaveAs "D:\Example.xlsm", FileFormat:=xlOpenXMLWorkbookMacroEnabled
End Sub

Ejemplo 2: crear un nuevo libro de trabajo y guardarlo

Aquí hay un ejemplo que creará un nuevo libro de trabajo, le pedirá un nombre al usuario y luego lo guardará. La función Workbooks.Add crea un nuevo libro de trabajo y lo agrega a la lista de libros de trabajo actualmente activos.

La función GetSaveAsFileName obtiene el nombre del archivo del usuario y también se usa para especificar la ruta. Seleccionar manualmente la ruta es útil si queremos una ruta diferente para cada archivo.

El código se da a continuación.

Sub Example2()

Set NewBook = Workbooks.Add
Do
fName = Application.GetSaveAsFilename
'The loop will provide a check for validating the file name
Loop Until fName <> False
NewBook.SaveAs Filename:=fName

End Sub

Ejemplo 3: Guardar el libro de trabajo activo

Este ejemplo muestra cómo puede usar la variable ActiveWorkbook para guardar el archivo abierto actualmente. Mientras proporciona el nombre del archivo en la ruta, deberá concatenarlo usando el operador & y el método ActiveWorkbook.Name, como se muestra en el código a continuación.

Sub Example3()
ActiveWorkbook.SaveAs "D:\Example\" & ActiveWorkbook.Name & ".xlsm"
End Sub

Ejemplo 4: Guardar todos los libros de trabajo activos

Si hay más de un libro de trabajo en el que está trabajando actualmente, aún puede usar la variable ActiveWorkbook para guardarlos todos usando un bucle. Esto se puede hacer usando el siguiente código.

Sub Example4()

Dim Wb As Workbook
For Each Wb In Workbooks
ActiveWorkbook.SaveAs "D:\Example\" & ActiveWorkbook.Name & ".xlsm"
Next Wb

End Sub

Ejemplo 5: Utilice los parámetros de la función SaveAs

En este ejemplo veremos como se especifican la mayoría de los parámetros de la función SaveAs que faltaban en los ejemplos anteriores. Así es como puedes escribirlos en código:

Sub Example5()

Set WB = Workbooks.Add
WB.SaveAs Filename:="D:Example5.xlsm", _
FileFormat:=xlOpenXMLWorkbookMacroEnabled, Password:="", WriteResPassword:="", _
ReadOnlyRecommended:=False, CreateBackup:=False

End Sub

Conclusión

Esto resume nuestra discusión sobre la función Guardar como en VBA, que es un lenguaje de programación útil que ahorra un tiempo valioso a los usuarios de Microsoft Office. Esperamos que haya aprendido las diversas formas en que se puede utilizar el método SaveAs para guardar archivos en una ubicación específica.

Bilal Shahid avatar Bilal Shahid avatar

Hello, I am Bilal, a research enthusiast who tends to break and make code from scratch. I dwell deep into the latest issues faced by the developer community and provide answers and different solutions. Apart from that, I am just another normal developer with a laptop, a mug of coffee, some biscuits and a thick spectacle!

GitHub