VBA – Nombre de Libro (Get, Set, sin Extensión)

Written by

Mel Jenkins

Reviewed by

Steve Rynearson

Translated by

Dennis Madrid

Last updated on diciembre 16, 2022

Este tutorial demostrará como obtener y establecer el nombre del Libro de Trabajo en VBA.

Podemos obtener o establecer el nombre del libro activo en VBA, o un bucle a través de todos los libros abiertos en Excel, y obtener o establecer el nombre de cada uno de ellos utilizando un bucle VBA.

Obtener el Nombre del Libro

Para obtener el nombre del libro activo, necesitamos utilizar la propiedad name del objeto workbooks.

Sub GetWorkbookName()
    Dim strWBName As String
    strWBName = ActiveWorkbook.Name
    MsgBox strWBName
End Sub

Si ejecutáramos el código anterior, veríamos aparecer en pantalla un cuadro de mensaje con el nombre del Libro de trabajo activo.

Para recorrer todos los libros activos, y devolver los nombres de los libros a Excel, podemos ejecutar el siguiente código:

Sub GetWorkbookNames()
    Dim wb As Workbook
    For Each wb In Workbooks
        ActiveCell = wb.Name
        ActiveCell.Offset(1, 0).Select
    Next
End Sub

En los ejemplos anteriores se incluirá la extensión del fichero (por ejemplo xlsx). Si no desea incluir la extensión, hay algunos métodos que podemos utilizar para obtener sólo el nombre de archivo del libro de trabajo.

Obtener el Nombre del Libro de Trabajo Sin la Extensión

Podemos utilizar las funciones LEFT e INSTR para eliminar cualquier carácter después del punto en el nombre del archivo:

Sub GetWorkbookName()
    Dim strWBName As String
    strWBName = Left(ActiveWorkbook.Name, InStr(ActiveWorkbook.Name, ".") - 1)
    MsgBox strWBName
End Sub

Podemos utilizar las funciones LEFT y LEN para eliminar 5 caracteres del final del nombre del archivo:

Sub GetWorkbookName()
    Dim strWBName As String
    strWBName = Left(ActiveWorkbook.Name, Len(ActiveWorkbook.Name) - 5)
    MsgBox strWBName
End Sub

Establecer el Nombre del Libro

Para establecer el nombre de un libro de trabajo en VBA, seguimos utilizando la propiedad Name del libro de trabajo, sin embargo no podemos utilizar este método para cambiar el nombre del Libro de trabajo activo. Esto se debe al hecho de que el libro de trabajo Activo está abierto, y se producirá un error de acceso al archivo. Para superar esto, podemos guardar el archivo con un nuevo nombre y luego eliminar el archivo antiguo.

Public Sub SetWorkbookName()
    Dim strPath As String
    Dim strNewName As String
    Dim strOldName As String
    strOldName = ActiveWorkbook.Name
    strNewName = InputBox("Introduzca un nuevo nombre para el libro de trabajo")
    strPath = ActiveWorkbook.Path
    ActiveWorkbook.SaveAs strPath & "/" & strNewName
    Kill strPath & "/" & strOldName
End Sub

Para renombrar un libro de trabajo que no está abierto, podemos utilizar el método Name.

Public Sub RenameWorkbook()
    Name "C:\Data\MyFile.xlsx" As "C:\Data\MyNewFile.xlsx"
End Sub
vba-free-addin

Complemento de Ejemplos de Código de VBA

Acceda fácilmente a todos los ejemplos de código que se encuentran en nuestro sitio.

Simplemente navegue al menú, haga clic y el código se insertará directamente en su módulo. Complemento .xlam.

(¡No se requiere instalación!)

Descarga gratuita

Return to VBA Code Examples