Alguma maneira de estilizar a tabela do Excel vinculada no PowerPoint?

Alguma maneira de estilizar a tabela do Excel vinculada no PowerPoint?

Eu tenho uma tabela vinculada em meu PPT (PowerPoint 2010), que pertence a uma parte de uma planilha do Excel 2010. Quando atualizo os dados no Excel, a tabela é atualizada automaticamente no PPT, o que funciona bem e conforme o esperado.

Agora, o problema é como estilizar esta tabela vinculada usando os estilos integrados do PowerPoint 2010. Portanto, ao inserir uma tabela normal do PowerPoint, você terá duas guias na faixa de opções em Ferramentas de tabela: Design e Layout. Na guia Design, na seção Estilos de tabela, você pode estilizar rapidamente a tabela usando vários estilos de tabela integrados.

Porém, quando tenho uma tabela vinculada do Excel, não tenho essas opções: quando seleciono a tabela, apenas uma guia aparece em Ferramentas de Tabela na faixa de opções, que é Formatar. E não consigo usar nenhum dos estilos de tabela integrados do PowerPoint. Isso torna a tabela vinculada inconsistente em termos de estilo, em comparação com outras tabelas regulares do PowerPoint.

Responder1

Infelizmente, os estilos integrados estão disponíveis apenas para tabelas de estilo criadas no PowerPoint, em vez de vinculadas ou coladas.

Um truque que pode ou não produzir resultados aceitáveis ​​para você seria criar uma tabela vazia do PowerPoint no estilo de sua escolha e, em seguida, sobrepor uma tabela vinculada do Excel. Um pequeno ajuste entre Excel e PowerPoint pode produzir um alinhamento razoável, correspondência de fonte, etc. O gráfico mostra os resultados de uma maquete muito rápida que fiz.

insira a descrição da imagem aqui

Responder2

O problema do conteúdo vinculado em geral é que o PowerPoint não tem ideia do que seja; possui uma imagem do conteúdo (entregue pelo aplicativo que produziu o conteúdo ... Excel, neste caso) e um link para o arquivo que contém os dados reais. Tudo o que ele pode fazer por você, se quiser editar o conteúdo, é ativá-lo no aplicativo original.

Sua melhor aposta pode ser formatar a tabela no Excel para começar.

Se você estiver tentando combinar um estilo PPT específico, crie uma tabela em PPT e copie/cole-a no Excel. Você desejará preencher todas as células com texto primeiro, caso contrário, o Excel aplicará sua formatação de texto padrão às células vazias. Ajuste as larguras das colunas conforme necessário, adicione seus dados reais e salve o arquivo. Em seguida, vincule-o de volta ao PPT.

Responder3

Obrigado pelas respostas. Mas me parece que a melhor solução ainda é estilizar a tabela em PPT e editar seus dados no Excel. Então escrevi um pequeno código VBA para transferir dados do Excel para PPT e funcionou perfeitamente para mim.

Aqui está o código:

Option Explicit
Option Base 1

Const WB_FINANCIALS As String = "\CPMR Financials.xlsm"
Const WS_SALES As String = "Sales Forecast"

Const SLIDE_SALES_FORECAST As String = "SalesForecast"

Const TABLE_SALES_FORECAST As String = "TableSalesForecast"

Const R_CPMA_COM_SALES As String = "cpma_complete_sales"
Const R_CPMA_LARGE_ATC_SALES As String = "cpma_large_atc_sales"
Const R_CPMA_REGULAR_ATC_SALES As String = "cpma_regular_atc_sales"
Const R_CPMA_REPORTS_SALES As String = "cpma_reports_sales"
Const R_RXR_REPORTS_SALES As String = "rxr_reports_sales"
Const R_TOTAL_SALES As String = "total_sales"


Sub ReadFinancialsBook()
    Dim XLApp As Excel.Application
    Dim FBook As Excel.Workbook
    Dim SalesForecast As Excel.Worksheet

    Set XLApp = Excel.Application
    Set FBook = XLApp.workbooks.Open(FileName:=ActivePresentation.Path + WB_FINANCIALS, ReadOnly:=True)
    Set SalesForecast = FBook.Worksheets(WS_SALES)

    Dim PPT As Presentation
    Dim SalesSlide As Slide

    Set PPT = ActivePresentation
    Set SalesSlide = PPT.Slides(SLIDE_SALES_FORECAST)
    Call ReadSalesForecast(SalesSlide, SalesForecast)

    Set SalesSlide = Nothing
    Set PPT = Nothing

    FBook.Close
    Set SalesForecast = Nothing
    Set FBook = Nothing
    Set XLApp = Nothing
End Sub

Private Sub ReadSalesForecast(S As Slide, WS As Excel.Worksheet)
    Dim T As Table
    Set T = S.Shapes(TABLE_SALES_FORECAST).Table

    Call WriteWSRangeToTable(T, 2, 4, WS, R_CPMA_COM_SALES)
    Call WriteWSRangeToTable(T, 5, 4, WS, R_CPMA_LARGE_ATC_SALES)
    Call WriteWSRangeToTable(T, 8, 4, WS, R_CPMA_REGULAR_ATC_SALES)
    Call WriteWSRangeToTable(T, 11, 4, WS, R_CPMA_REPORTS_SALES)
    Call WriteWSRangeToTable(T, 14, 4, WS, R_RXR_REPORTS_SALES)
    Call WriteWSRangeToTable(T, 17, 4, WS, R_TOTAL_SALES)

    Set T = Nothing
End Sub

Private Sub WriteWSRangeToTable(T As Table, row As Integer, col As Integer, WS As Excel.Worksheet, Name As String)
    Dim i, j, r, c As Integer
    Dim str As String

    r = WS.Range(Name).Rows.Count
    c = WS.Range(Name).Columns.Count

    For i = 1 To r
        For j = 1 To c
            str = CStr(WS.Range(Name).Cells(i, j))
            str = Format(str, "#,##0")
            T.Cell(row + i - 1, col + j - 1).Shape.TextFrame.TextRange.Text = str
        Next j
    Next i
End Sub

informação relacionada