Cara Menyalin Grafik yang Tertanam di Sheet Excel ke Slide PowerPoint dengan Macro VBA
Pada postingan Cara Membuat Grafik di Excel disertai Contoh Workbook, telah dijelaskan bahwa Excel memiliki dua jenis tampilan grafik yaitu grafik yang tertempel di atas worksheet dan yang tertanam di dalam worksheet.
Grafik yang tertanam di dalam worksheet ditempatkan di tab sheet "Chart" yang terpisah dari tabel sumber datanya, grafik ini bisa disebut sebagai Grafik Sheet atau Chart Sheet.
Untuk bisa mengikuti tutorial ini Anda harus memiliki file Excel sekurang-kurangnya memiliki sebuah grafik dalam file tersebut.
Jika Anda belum mempunyai contoh grafik sheet, maka Anda bisa mengubah grafik biasa yang tertempel di atas worksheet menjadi sebuah grafik sheet dengan cara:
- Klik pada grafik lalu buka menu ribbon Chart Tools > Design > Location > Move Chart atau klik kanan grafik untuk memunculkan menu pintas.
- Pada kotak dialog 'Move Chart' pilih New Sheet lalu klik OK.
Kode macro ini nantinya akan memiliki alur yaitu mula-mula membuat file presentasi PowerPoint baru terlebih dahulu, lalu membuat judul utama slide, memproses salinan gambar keseluruhan grafik yang ada pada setiap sheet dan menempatkan salinan gambar tersebut di masing-masing slide-nya, kemudian menempatkan tulisan berupa judul grafik menurut sheet pada setiap slide, dan langkah terakhir yaitu menyimpan file di dalam komputer.
Berikut ini langkah penyusunan kode macronya:
1. Langkah pertama Anda membuka VBE dengan cara menekan tombol Alt+F11 pada keyboard.
2. Buka menu Insert > Module.
3. Ketik terlebih dahulu lalu tekan Enter:
4. Tepat di bawahnya tetapkan contoh variabel berikut A sebagai aplikasi PowerPoint dan B sebagai file presentasi:
5. Lalu variabel C untuk slide:
6. Variabel D untuk grafik:
7. Tetapkan variabel dengan jenis bilangan (Integer) untuk menghitung banyaknya slide. Masing-masing grafik ini nantinya akan dimasukkan ke dalam slide baru.
8. Perintahkan macro membuka PowerPoint:
9. Pastikan aplikasi tampil di layar:
10. Buat sebuah presentasi baru dan tambahkan sebuah judul slide:
With B.Slides
Set C = .Add(.Count + 1, 11)
End With
C.Shapes.Title.TextFrame.TextRange.Text = "Contoh Salinan Grafik Sheet"
11. Gunakan loop For_Next untuk menempatkan setiap grafik sheet pada slide-nya masing-masing:
D.CopyPicture Appearance:=xlScreen, Format:=xlPicture, Size:=xlScreen
12. Tambah slide baru dengan perintah:
Set C = B.Slides.Add(E + 1, 11)
A.ActiveWindow.View.GotoSlide C.SlideIndex
13. Paste-kan dan pilih gambar grafik:
14. Pilih gambar yang telah di-paste:
15. Sejajarkan grafik agar berada di tengah-tengah slide:
.Align msoAlignCenters, msoTrue
.Align msoAlignMiddles, msoTrue
End With
16. Tentukan posisi judul nama grafik pada slide:
.SlideRange.Shapes.AddLabel _
(msoTextOrientationHorizontal, 300, 20, 500, 50).Select
.ShapeRange.TextFrame.WordWrap = msoFalse
17. Atur format judul nama grafik tersebut:
.Characters(Start:=1, Length:=0).Select
.Text = "Ini adalah Grafik " & D.Name
With .Font
.Name = "Calibri"
.Size = 14
.Bold = msoTrue
End With
End With
End With
18. Lanjutkan proses loop hingga seluruh grafik sheet telah disalin:
19. Akhiri macro dengan mengaktifkan slide pertama:
20. Simpan file baru Anda misalnya SalinanGrafikSheet.pptx:
Lepaskan memori sistem untuk variabel objek berikut:
Set C = Nothing
Set B = Nothing
Set A = Nothing
Kode lengkapnya adalah sebagai berikut:
Dim A As Object, B As Object
Dim C As Object
Dim D As Chart
Dim E As Integer
Set A = CreateObject("PowerPoint.Application")
A.Visible = msoTrue
Set B = A.Presentations.Add
With B.Slides
Set C = .Add(.Count + 1, 11)
End With
C.Shapes.Title.TextFrame.TextRange.Text = "Contoh Salinan Grafik Sheet"
For Each D In ThisWorkbook.Charts
D.CopyPicture Appearance:=xlScreen, Format:=xlPicture, Size:=xlScreen
E = B.Slides.Count
Set C = B.Slides.Add(E + 1, 11)
A.ActiveWindow.View.GotoSlide C.SlideIndex
C.Shapes.Paste
C.Shapes(1).Select
With A.ActiveWindow.Selection.ShapeRange
.Align msoAlignCenters, msoTrue
.Align msoAlignMiddles, msoTrue
End With
With A.ActiveWindow.Selection
.SlideRange.Shapes.AddLabel _
(msoTextOrientationHorizontal, 300, 20, 500, 50).Select
.ShapeRange.TextFrame.WordWrap = msoFalse
With .ShapeRange.TextFrame.TextRange
.Characters(Start:=1, Length:=0).Select
.Text = "Ini adalah Grafik " & D.Name
With .Font
.Name = "Calibri"
.Size = 14
.Bold = msoTrue
End With
End With
End With
Next D
A.ActiveWindow.View.GotoSlide 1
B.SaveAs Filename:=ThisWorkbook.Path & "\SalinanGrafikSheet.pptx"
Set A = Nothing
Set C = Nothing
Set B = Nothing
Set A = Nothing
End Sub
Demikian Cara Menyalin Grafik yang Tertanam di Sheet Excel atau Grafik Sheet ke Slide PowerPoint dengan Macro VBA.
Silakan Anda uji coba kode macro SalinGrafikSheet yang telah Anda buat tersebut dan semoga postingan ini bermanfaat.
