Clase PublishObject - un elemento de un libro que se ha guardado en una página web y que puede actualizarse según los valores especificados por las propiedades y métodos del objeto PublishObject (Excel VBA)

La clase PublishObject representa un elemento de un libro que se ha guardado en una página web y que puede actualizarse según los valores especificados por las propiedades y métodos del objeto PublishObject .

Para usar una variable de clase PublishObject, primero debe ser instanciado, por ejemplo

Dim pblobj as PublishObject
Set pblobj = ActiveWorkbook.PublishObjects(Index:=1)

Los siguientes procedimientos se pueden usar para establecer variables de clase PublishObject : PublishObjects.Add y PublishObjects.Item.

For Each

A continuación, se muestra un ejemplo de cómo procesar los elementos PublishObject en una colección.

blnChartFound = False 
For Each objPO In Workbooks(1).PublishObjects 
 If objPO.SourceType = xlSourceChart Then 
 strFirstPO = objPO.Source 
 blnChartFound = True 
 Exit For 
 End If 
Next objPO

AutoRepublish

Cuando se guarda un libro, Microsoft Excel determina si algún elemento de la colección PublishObjects tiene la propiedad establecida en truey, si es así, vuelve a publicarla.

ActiveWorkbook.PublishObjects(1).AutoRepublish = True

Delete

Elimina el objeto.

ActiveWorkbook.PublishObjects(1).Delete

DivID

Devuelve el identificador único que se usa para identificar una

etiqueta HTML en una página web.

Dim strDivID As String
strDivID = ActiveWorkbook.PublishObjects(1).DivID

Filename

Devuelve o establece la dirección URL (en la intranet o en la web) o la ruta de acceso (local o de red) a la ubicación donde se guardó el objeto de origen especificado.

La propiedad filename genera un error si no existe una carpeta en la ruta de acceso especificada.

ActiveWorkbook.PublishObjects(1).FileName = _ 
 "\\Server2\Q1\StockReport.htm"

HtmlType

Devuelve o establece el tipo de HTML generado por Microsoft Excel al guardar el elemento especificado en una página web.

ActiveWorkbook.PublishObjects(1).HtmlType = xlHtmlStatic

Publish

Guarda un elemento o una colección de elementos de un documento en una página web.

La propiedad filename devuelve o establece la ubicación y el nombre del archivo HTML.

Publish (Create)

Create: Si existe el archivo HTML, establecer este argumento en True reemplaza el archivo y establecerlo en False, inserta el elemento o elementos al final del archivo.

With ActiveWorkbook.PublishObjects.Add(xlSourceRange, _ 
 "\\Server1\sharedfolder\Stockreport.htm", "First Quarter", _ 
 "$D$5:$D$9", xlHtmlStatic, "Book2_25082", "") 
 .Publish (True) 
 .AutoRepublish = True 
End With

Sheet

Devuelve el nombre de la hoja del objeto PublishObject especificado.

Dim strSheet As String
strSheet = ActiveWorkbook.PublishObjects(1).Sheet

Source

Devuelve un valor de tipo Variant que representa el nombre exclusivo que identifica los elementos que tienen en la propiedad SourceType un valor xlSourceRange, xlSourceChart, xlSourcePrintArea, xlSourceAutoFilter, xlSourcePivotTable o xlSourceQuery.

Si la propiedad SourceType se establece en xlSourceRange, esta propiedad devuelve un rango, que puede ser un nombre definido.

Dim strSource As String
strSource = ActiveWorkbook.PublishObjects(1).Source

SourceType

Devuelve un valor XlSourceType que representa el tipo de elemento que se va a publicar. Posibles valores de retorno son xlSourceAutoFilter - Un rango de Autofiltro, xlSourceChart - Un gráfico, xlSourcePivotTable - Un informe de tabla dinámica, xlSourcePrintArea - Rango de celdas seleccionadas para imprimir, xlSourceQuery - Una tabla de consulta (rango de datos externos), xlSourceRange - Un rango de celdas, xlSourceSheet - Una hoja de cálculo completa, xlSourceWorkbook - Un libro.

Dim xstSourceType As XlSourceType
xstSourceType = ActiveWorkbook.PublishObjects(1).SourceType

Title

Devuelve o establece el título de la página web cuando el documento se guarda como una página web.

Normalmente, el título se muestra en la barra de título de la ventana cuando se ve el documento en el explorador Web.

Workbooks(1).PublishObjects(1).Title = "Sales Forecast"