lunes, 3 de diciembre de 2012

VBA: Cómo cambiar las propiedades de un documento de Excel.

Tiempo atrás comenté en este blog la manera de listar las propiedades de un documento de Excel, era una forma sencilla de visualizar estas propiedades (ver).

En esta ocasión aprenderemos una manera, igualmente sencilla, de modificar estas propiedades de un documento de Excel desde valores contenidos en celdas de nuestra hoja de cálculo.

Para ello, insertamos el siguiente código VBA en un módulo del Explorador de proyectos VBA:

Function CambioDocProp(DocProp As String, NuevoVal As String) As Boolean
Application.Volatile
On Error GoTo SalirProceso
ActiveWorkbook.BuiltinDocumentProperties.Item(DocProp) = NuevoVal
'verificamos el éxito del cambio
CambioDocProp = True
Exit Function

SalirProceso:
CambioDocProp = False
End Function



El listado completo de las propiedades de un documento de Excel sería el siguiente (ojo por que estas propiedades se definen en inglés!!!):
Title, Subject, Author, Keywords, Comments, Template, Last author, Revision number, Application name, Last print date, Creation date, Last save time, Total editing time, Number of pages, Number of words, Number of characters, Security, Category, Format, Manager, Company, Number of bytes, Number of lines, Number of paragraphs, Number of slides, Number of notes, Number of hidden Slides, Number of multimedia clips, Hyperlink base, Number of characters (with spaces), Content type, Content status, Language, Document version.


Esta función tal cual exige que al completar los dos argumentos DocProp:= propiedad a cambiar y NuevoVal:= nuevo valor de la propiedad, o bien se refieran a una celda o bien se escriban entre comillas:
=CambioDocProp("Comments";"Cambiamos los comentarios")

El resultado de la función devuelve un VERDADERO si el cambio se ha producido o un FALSO si algo falla.

Podemos ver cómo actúa realmente esta función sobre cambios en algunas propiedades. Para ello sacaremos la venta de propiedades (Panel de documentos) a la hoja de cálculo (Menú Archivo > Información > Propiedades > Mostrar Panel de documento):

VBA: Cómo cambiar las propiedades de un documento de Excel.


A continuación escribimos algunas funciones CambioDocProp que actue sobre alguna de las propiedades, viéndo como inmediatamente modifica éstas:

VBA: Cómo cambiar las propiedades de un documento de Excel.

8 comentarios:

  1. muchas gracias amigos
    son muy buenos y didacticos estos documentos.
    Agradezco a Di-s sus correos y Uds.
    atte
    Marcelo

    ResponderEliminar
  2. COMO ESTOY APRENDIENDO EXCELL CUALQUIER APORTE Y ADEMAS DE ESTE TIPO PARA MI ES DEMASIADO IMPORTANTE, LES AGRADEZCO SU APORTE Y AMIS ANHELOS DE APRENDER, SPBRE EL TEMA.

    ResponderEliminar
    Respuestas
    1. Gracias Alfredo,
      me alegra que mi pequeño aporte sirva a alguien.
      Slds

      Eliminar
  3. Holas, excelente. Muchas gracias. Y si deseo cambiar las propiedades de una hoja en particular por vba?

    ResponderEliminar
    Respuestas
    1. Hola,
      puedes ver las propiedades en la Ficha Desarrollador > grupo Controles > botón Propiedades...
      Puedes hacer uso de ellos desde la hoja de código de la hoja, por ejemplo:
      Hoja1.ScrollArea="A1:C10"
      Saludos

      Eliminar
  4. Buen dia, excelente aporte. tengo una duda, si quiero llegar en un punto determinado de una hoja con ActiveWindow.ScrollRow = 121. pero que no se pueda mover después de ejecuta la macro.
    Muchas gracias por la ayuda
    saludos

    ResponderEliminar
    Respuestas
    1. Hola, buenos días...
      quizá limitando el ScrollArea a ese rango que este a la vista (o la celda activa en ese momento).
      Echa un vistazo a https://excelforo.blogspot.com/2017/10/vba-Scroll-Macros-Excel.html

      Saludos

      Eliminar

Nota: solo los miembros de este blog pueden publicar comentarios.