Quantas vezes você já construiu uma apresentação do PowerPoint com dados do MS Excel? Certamente temos feito isso em alguns momentos - alguns de nós fazemos isso em base semanal.
A dinâmica é a seguinte: Você copia ou vincula as tabelas e os gráficos do MS Excel para um deck do MS PowerPoint. Em seguida atualiza os Slides quando for a hora de mostrar a apresentação.
Neste post, eu gostaria de mostrar uma técnica que leva o conceito de utilização de dados do MS Excel no MS PowerPoint ao extremo. A idéia básica é que você pode construir uma aplicação imite uma apresentação do MS PowerPoint. Ou seja, a planilha é a apresentação em si e cada aba torna-se um slide da apresentação.
Com esta técnica, poderá construir apresentações inteiras no MS Excel, onde terá as melhores ferramentas analíticas automatizadas. E poderá simplesmente converter a sua versão do MS Excel da sua apresentação para uma apresentação do MS PowerPoint.1º - Crie uma planilha de trabalho para que cada guia represente um slide da apresentação.O truque para esta técnica é que você criará uma imagem de um Range específico em cada guia, e então colará a imagem no MS PowerPoint. Sob essa dica, é importante perceber que você desejará colocar os seus elementos (tabelas e gráficos) no mesmo intervalo das guias.2º - ATENÇÃO: Cole o código abaixo num módulo padrão. Você precisará mudar a faixa a ser capturada (na 3º Etapa do código). Também vai querer ajustar o tamanho e a posição de cada Slide (na 7º Etapa do código).Sub WorkbooktoPowerPoint()'Step 1: Declare your variablesDim pp As ObjectDim PPPres As ObjectDim PPSlide As ObjectDim xlwksht As WorksheetDim MyRange As StringDim MyTitle As String'Step 2: Open PowerPoint, add a new presentation and make visibleSet pp = CreateObject("PowerPoint.Application")Set PPPres = pp.Presentations.Addpp.Visible = True'Step 3: Set the ranges for your data and titleMyRange = "B2:BH40" '<<'Step 4: Start the loop through each worksheetFor Each xlwksht In ActiveWorkbook.Worksheetsxlwksht.SelectApplication.Wait (Now + TimeValue("0:00:1"))'Step 5: Copy the range as picturexlwksht.Range(MyRange).CopyPicture _Appearance:=xlScreen, Format:=xlPicture'Step 6: Count slides and add new blank slide as next available slide number'(the number 12 represents the enumeration for a Blank Slide)SlideCount = PPPres.Slides.CountSet PPSlide = PPPres.Slides.Add(SlideCount + 1, 12)PPSlide.Select'Step 7: Paste the picture and adjust its positionPPSlide.Shapes.Paste.Selectpp.ActiveWindow.Selection.ShapeRange.Align msoAlignCenters, Truepp.ActiveWindow.Selection.ShapeRange.Top = 1pp.ActiveWindow.Selection.ShapeRange.Left = 1pp.ActiveWindow.Selection.ShapeRange.Width = 700'Step 8: Add the title to the slide then move to next worksheetNext xlwksht'Step 9: Memory Cleanuppp.ActivateSet PPSlide = NothingSet PPPres = NothingSet pp = NothingEnd Sub
Tags: VBA, PowePoint, Deck, Excel, VBA, automação, automation,