Skip to content Skip to sidebar Skip to footer

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:

  1. Klik pada grafik lalu buka menu ribbon Chart Tools > Design > Location > Move Chart atau klik kanan grafik untuk memunculkan menu pintas.
  2. Pada kotak dialog 'Move Chart' pilih New Sheet lalu klik OK.
Grafik yang masih tertempel di atas sheet tidak akan dapat disalin melalui kode macro ini, selengkapnya Anda bisa simak pada postingan Tips Menyalin Grafik yang Tertempel di Sheet Excel ke dalam Slide PowerPoint dengan Macro VBA

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:

Sub SalinGrafikSheet()

4. Tepat di bawahnya tetapkan contoh variabel berikut A sebagai aplikasi PowerPoint dan B sebagai file presentasi:

Dim A As Object, B As Object

5. Lalu variabel C untuk slide:

Dim C As Object

6. Variabel D untuk grafik:

Dim D As Chart

7. Tetapkan variabel dengan jenis bilangan (Integer) untuk menghitung banyaknya slide. Masing-masing grafik ini nantinya akan dimasukkan ke dalam slide baru.

Dim E As Integer

8. Perintahkan macro membuka PowerPoint:

Set A = CreateObject("PowerPoint.Application")

9. Pastikan aplikasi tampil di layar:

A.Visible = msoTrue

10. Buat sebuah presentasi baru dan tambahkan sebuah judul slide:

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"

11. Gunakan loop For_Next untuk menempatkan setiap grafik sheet pada slide-nya masing-masing:

For Each D In ThisWorkbook.Charts
D.CopyPicture Appearance:=xlScreen, Format:=xlPicture, Size:=xlScreen

12. Tambah slide baru dengan perintah:

E = B.Slides.Count
Set C = B.Slides.Add(E + 1, 11)
A.ActiveWindow.View.GotoSlide C.SlideIndex

13. Paste-kan dan pilih gambar grafik:

C.Shapes.Paste

14. Pilih gambar yang telah di-paste:

C.Shapes(1).Select

15. Sejajarkan grafik agar berada di tengah-tengah slide:

With A.ActiveWindow.Selection.ShapeRange
.Align msoAlignCenters, msoTrue
.Align msoAlignMiddles, msoTrue
End With

16. Tentukan posisi judul nama grafik pada slide:

With A.ActiveWindow.Selection
.SlideRange.Shapes.AddLabel _
(msoTextOrientationHorizontal, 300, 20, 500, 50).Select
.ShapeRange.TextFrame.WordWrap = msoFalse

17. Atur format judul nama grafik tersebut:

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

18. Lanjutkan proses loop hingga seluruh grafik sheet telah disalin:

Next D

19. Akhiri macro dengan mengaktifkan slide pertama:

A.ActiveWindow.View.GotoSlide 1

20. Simpan file baru Anda misalnya SalinanGrafikSheet.pptx:

B.SaveAs Filename:=ThisWorkbook.Path & "\SalinanGrafikSheet.pptx"

Lepaskan memori sistem untuk variabel objek berikut:

Set A = Nothing
Set C = Nothing
Set B = Nothing
Set A = Nothing

Kode lengkapnya adalah sebagai berikut:

Sub SalinGrafikSheet()
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.