Rebecca ha alcuni clienti che richiedono che tutti i report vengano presentati loro in PowerPoint. Ciò rappresenta un compito enorme, poiché tutti i dati di origine per tali report sono disponibili solo in Excel. Rebecca era alla ricerca di idee per semplificare un po’ l’onere della conversione dall’uno all’altro, magari scattando “istantanee” dei dati del foglio di lavoro e inserendoli nelle diapositive di PowerPoint.
Una soluzione, se non sono necessarie molte istantanee, è semplicemente incollare manualmente. È possibile visualizzare le informazioni in Excel e quindi premere il tasto PrintScreen per inserirne un’immagine negli Appunti di Office. Passando a PowerPoint e scegliendo Appunti di Office dal menu Modifica. Puoi quindi vedere il contenuto degli Appunti e scegliere cosa vuoi incollare nella diapositiva corrente.
Un approccio meno ripetitivo sarebbe quello di collegare i dati della cartella di lavoro di Excel alle diapositive. Puoi usare Modifica > Incolla speciale (in PowerPoint) per incollare i dati collegati. In questo modo, ogni volta che si aggiornano i dati della cartella di lavoro, verranno aggiornate anche le diapositive collegate. Se eseguita correttamente, questa soluzione offre la possibilità di dover incollare solo una volta.
Se preferisci intraprendere la strada dello sviluppo di macro per incollare, dai un’occhiata a quella sviluppata da Jon Peltier sul suo sito Web.
Scatterà un’istantanea di tutte le celle selezionate, quindi le incollerà nella diapositiva attiva in PowerPoint (ovviamente, per poter utilizzare la macro è necessario avere sia Excel che PowerPoint aperti).
Inoltre, la macro può essere modificata con relativa facilità in modo da scorrere una serie di intervalli denominati in Excel e incollare il contenuto di tali intervalli in diapositive specifiche in PowerPoint.
Un’altra soluzione basata su macro consiste nel creare una nuova presentazione PowerPoint (da Excel) che conterrà un’istantanea di ciascuno dei fogli di lavoro nella cartella di lavoro di Excel corrente. La seguente macro esegue questa attività:
Sub CopyWksToPPT()
Dim pptApp As Object
Dim sTemplatePPt As String
Dim wks As Worksheet
Dim sTargetTop As Single
Dim sTargetLeft As Single
Dim sTargetWidth As Single
Dim sTargetHeight As Single
Dim sScaleHeight As Single
Dim sScaleWidth As Single
Dim iIndex As Integer
'Cambia queste impostazioni secondo necessità
sTargetTop = 30
sTargetLeft = 60
sTargetWidth = 600
sTargetHeight = 450
sTemplatePPt = "C:\Program Files\Microsoft Office\root\Templates\1040\Pitchbook.potx"
iIndex = 1
Set pptApp = CreateObject("Powerpoint.Application")
With pptApp
.Visible = True
.Presentations.Open _
Filename:=sTemplatePPt, Untitled:=msoTrue
For Each wks In Worksheets
wks.Select
.ActiveWindow.View.GotoSlide _
Index:=.ActivePresentation.Slides.Add _
(Index:=iIndex, Layout:=12).SlideIndex
iIndex = iIndex + 1
wks.UsedRange.Copy
.ActiveWindow.View.Paste
With .ActiveWindow.Selection.ShapeRange
sScaleHeight = sTargetHeight / .Height
sScaleWidth = sTargetWidth / .Width
If sScaleHeight < sScaleWidth Then
sScaleWidth = sScaleHeight
Else
sScaleHeight = sScaleWidth
End If
.ScaleHeight sScaleHeight, 0, 2
.ScaleWidth sScaleWidth, 0, 2
.Top = sTargetTop + (sTargetHeight - .Height) / 2
.Left = sTargetLeft + (sTargetWidth - .Width) / 2
End With
Next
.Visible = True
End With
End Sub
Nota l’area che dice “Cambia queste impostazioni secondo necessità”. Contiene le specifiche di dove si troverà l’istantanea incollata all’interno di ciascuna diapositiva di PowerPoint, nonché la sua altezza e larghezza. Nella variabile sTemplatePPt è incluso anche il percorso completo del modello da utilizzare per la nuova presentazione PowerPoint.