Guardar como en Microsoft Excel VBA
-
¿Qué es la función
SaveAs
en VBA? - Ejemplo 1: guardar un libro de trabajo
- Ejemplo 2: crear un nuevo libro de trabajo y guardarlo
- Ejemplo 3: Guardar el libro de trabajo activo
- Ejemplo 4: Guardar todos los libros de trabajo activos
-
Ejemplo 5: Utilice los parámetros de la función
SaveAs
- Conclusión
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 opcionesGuardar
yGuardar 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:
Expresión
: el nombre de la variable representa el objeto del libro. Por ejemplo, podemos usar la variableActiveWorkbook
para especificar el libro de trabajo actualmente abierto.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.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.Contraseña
: si desea mantener una contraseña en su archivo, puede especificarla aquí en una cadena de15
caracteres o menos.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.ReadOnlyRecommended
: si se envíaTrue
aquí, se mostrará un mensaje cuando se abra el archivo, diciendo que se recomienda abrir este archivo en modo de solo lectura.Crear copia de seguridad
: se creará un archivo de copia de seguridad si se envíaTrue
aquí.AccessMode
: aquí puede especificar el modo de acceso para guardar, como exclusivo o predeterminado.ConflictResolution
: este parámetro especifica cómo el métodoSaveAs
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.AddToMru
: El valor predeterminado para esto esFalse
, pero puede indicarTrue
si desea agregar este archivo a la lista de usados recientemente.TextCodepage
: este parámetro se ignora en Excel para todos los idiomas.TextVisualLayout
: este parámetro también se ignora en Excel para todos los idiomas.Local
: el valor predeterminado para esto esFalse
, que guarda el archivo en el idioma de VBA, es decir, inglés de EE. UU. Enviar unTrue
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.
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