Bagaimana cara membuat dan menyisipkan bentuk di PowerPoint dengan VBA?

Beberapa hari yang lalu, saya ingin mengotomatiskan tugas yang agak biasa untuk membuat beberapa slide PowerPoint. Saat mengotomatiskan PowerPoint, Anda biasanya bekerja dengan koleksi Slides and Shapes. Slide agak cukup jelas, dan bentuk hampir semuanya termasuk kotak teks, tombol tindakan, objek media, label, gambar, info, diagram alur, dan seterusnya dan seterusnya. Meskipun saya akan menampilkan teknik dengan PowerPoint, beberapa sintaks sebenarnya cukup berlaku untuk Microsoft Word dan Excel.

Sekadar rekap, sebelum Anda memulai pengembangan makro VBA di PowerPoint, Anda harus mengaktifkan tab pengembangan .

Pertama, mari kita mulai dengan membuat presentasi secara otomatis dengan beberapa slide seperti yang ditunjukkan dalam tutorial ini: membuat presentasi di VBA .

Sekarang kita bisa mulai bekerja dengan Shapes. Pertama, mari kita lanjutkan dan buka VBA Editor dengan menekan Alt+ F11. Jika Anda mengikuti tutorial sebelumnya, Anda harus memiliki modul 1 di daftar Modul Anda (seperti yang ditunjukkan di bawah)

Bekerja dengan Bentuk dengan VBA

Menambahkan kotak teks dengan VBA

Kita akan mulai dengan menambahkan kotak teks vertikal ke slide pertama kita dalam presentasi. Tambahkan kode berikut ke Module1, lalu lanjutkan dan tekan tombol Simpan (Ctrl+s) dan Jalankan makro Anda (tekan F5 atau tekan Run Sub/User Form).

Sub CreateTextBox()
Set MySlide = ActivePresentation.Slides(2)

    With MySlide.Shapes
        .AddTextbox(Orientation:=msoTextOrientationVertical, _
         Left:=90, Top:=200, Width:=80, _
         Height:=200).TextFrame.TextRange.Text _
        = ("This is my vertical text box")

End With

End Sub

Perhatikan bahwa Anda dapat mengubah ukuran dimensi kotak teks dengan cukup mudah dengan VBA. Dalam hal ini kita akan mengubah ukuran bentuk pertama di slide kedua, jangan ragu untuk memodifikasi sesuai kebutuhan.

Sub ResizeText()
Set MyShape = ActivePresentation.Slides(2).Shapes(1)

'Add your required dimensions as needed below
   With MyShape
         .Width = 200
         .Height = 35

End With
End Sub

Efek Teks dengan VBA

Sekarang mari kita asumsikan bahwa kita ingin menambahkan kotak teks ke semua slide dalam presentasi, kali ini sedikit lebih menarik secara visual. Untuk melakukannya, kita akan menggunakan VBA untuk membuat efek Teks kustom yang dapat kita sematkan ke dalam satu atau beberapa slide dalam presentasi. Pertama-tama kita akan mengulang slide presentasi dan kemudian menambahkan efek teks sesuai kebutuhan.

Sub SetEffects()

Dim i As Integer

For i = 1 To ActivePresentation.Slides.Count
    ActivePresentation.Slides(i) _
    .Shapes.AddTextEffect msoTextEffect12, "Draft for Review", _
    "Segoe UI", 32, msoTrue, msoTrue, 650, 50
Next

End Sub

Ini hasilnya ;-):

Bagaimana cara membuat dan menyisipkan bentuk di PowerPoint dengan VBA?

Perhatikan bahwa Anda mungkin juga menggunakan tanda air sederhana untuk mencapai hasil spesifik ini.

Info PowerPoint dengan VBA

Contoh kami berikutnya adalah menambahkan info ke presentasi Anda. Dalam contoh ini kita akan menambahkan callout slide kedua.

Sub CreateCallout()

ActivePresentation.Slides(2).Shapes.AddCallout(Type:=msoCalloutTwo, Left:=200, Top:=50, _  Width:=300, Height:=100).TextFrame.TextRange.Text = "My Callout"

End Sub

Mengatur properti untuk suatu bentuk

Banyak properti pemformatan bentuk tidak diatur oleh properti yang berlaku langsung ke  objek Shape  atau  ShapeRange  . Sebaliknya, atribut bentuk terkait dikelompokkan dalam objek sekunder, seperti  objek FillFormat  , yang berisi semua properti yang berhubungan dengan isian bentuk, atau  objek LinkFormat  , yang berisi semua properti unik untuk objek OLE tertaut. Untuk mengatur properti bentuk, Anda harus terlebih dahulu mengembalikan objek yang mewakili kumpulan atribut bentuk terkait, lalu mengatur properti objek yang dikembalikan tersebut. Misalnya, Anda menggunakan  properti Isi  untuk mengembalikan  objek FillFormat  , lalu Anda menyetel  properti ForeColor  dari  objek FillFormat  untuk menyetel warna latar depan isian untuk bentuk yang ditentukan, seperti yang diperlihatkan dalam contoh berikut.

VB

Set myDocument = ActivePresentation.Slides(1)
myDocument.Shapes(1).Fill.ForeColor.RGB = RGB(255, 0, 0)

Menerapkan properti atau metode ke beberapa bentuk secara bersamaan

Di antarmuka pengguna, ada beberapa operasi yang dapat Anda lakukan dengan beberapa bentuk yang dipilih; misalnya, Anda dapat memilih beberapa bentuk dan mengatur semua isiannya sekaligus. Ada operasi lain yang hanya dapat Anda lakukan dengan satu bentuk yang dipilih; misalnya, Anda hanya dapat mengedit teks dalam suatu bentuk jika satu bentuk dipilih.

Dalam Visual Basic, ada dua cara untuk menerapkan properti dan metode pada sekumpulan bentuk. Kedua cara ini memungkinkan Anda melakukan operasi apa pun yang dapat Anda lakukan pada satu bentuk pada rentang bentuk, baik Anda dapat melakukan operasi yang sama di antarmuka pengguna atau tidak.

  • Jika operasi ini berfungsi pada beberapa bentuk yang dipilih di antarmuka pengguna, Anda bisa melakukan operasi yang sama di Visual Basic dengan membuat  koleksi ShapeRange  yang berisi bentuk yang ingin Anda kerjakan, dan menerapkan properti dan metode yang sesuai secara langsung ke koleksi  ShapeRange  .

  • Jika operasi tidak bekerja pada beberapa bentuk yang dipilih di antarmuka pengguna, Anda masih dapat melakukan operasi dalam Visual Basic dengan mengulang melalui  koleksi Bentuk  atau melalui  koleksi ShapeRange  yang berisi bentuk yang ingin Anda kerjakan, dan menerapkan properti yang sesuai. dan metode ke masing-masing  objek Bentuk  dalam koleksi.

Banyak properti dan metode yang diterapkan pada  objek Shape  dan  koleksi ShapeRange  gagal jika diterapkan pada jenis bentuk tertentu. Misalnya,  properti TextFrame  gagal jika diterapkan pada bentuk yang tidak bisa berisi teks. Jika Anda tidak yakin bahwa setiap bentuk dalam  koleksi ShapeRange  dapat memiliki properti atau metode tertentu yang diterapkan padanya, jangan terapkan properti atau metode tersebut ke  koleksi ShapeRange  . Jika Anda ingin menerapkan salah satu properti atau metode ini ke kumpulan bentuk, Anda harus mengulang koleksi tersebut dan menguji masing-masing bentuk untuk memastikan jenis bentuknya sesuai sebelum menerapkan properti atau metode ke dalamnya.

Menerapkan properti atau metode ke koleksi ShapeRange

Jika Anda bisa melakukan operasi pada beberapa bentuk yang dipilih di antarmuka pengguna secara bersamaan, Anda bisa melakukan persamaan terprogram dengan membuat koleksi  ShapeRange  lalu menerapkan properti atau metode yang sesuai ke dalamnya. Contoh berikut membuat rentang bentuk yang berisi BentukOtomatis bernama "Bintang Besar" dan "Bintang Kecil" dan menerapkan isian gradien pada keduanya.myDocument

VB

Set myDocument = ActivePresentation.Slides(1) 
Set myRange = myDocument.Shapes _ 
    .Range(Array("Big Star", "Little Star")) 
myRange.Fill.PresetGradient msoGradientHorizontal, _ 
    1, msoGradientBrass

Berikut ini adalah pedoman umum tentang bagaimana properti dan metode berperilaku ketika diterapkan pada  koleksi ShapeRange  .

  • Menerapkan metode pada koleksi sama dengan menerapkan metode pada masing-masing  objek Shape  dalam koleksi tersebut.

  • Menetapkan nilai properti koleksi setara dengan menetapkan nilai properti masing-masing bentuk dalam rentang tersebut.

  • Properti koleksi yang mengembalikan konstanta akan mengembalikan nilai properti untuk masing-masing bentuk dalam koleksi jika semua bentuk dalam koleksi memiliki nilai yang sama untuk properti tersebut. Jika tidak semua bentuk dalam koleksi memiliki nilai properti yang sama, ia akan mengembalikan konstanta "campuran".

  • Properti koleksi yang mengembalikan tipe data sederhana (seperti  LongSingle , atau  String ) mengembalikan nilai properti untuk bentuk individual jika semua bentuk dalam koleksi memiliki nilai yang sama untuk properti tersebut.

  • Nilai beberapa properti dapat dikembalikan atau ditetapkan hanya jika terdapat tepat satu bentuk dalam koleksi. Jika ada lebih dari satu bentuk dalam koleksi, terjadi kesalahan run-time. Hal ini umumnya terjadi untuk mengembalikan atau menyetel properti ketika tindakan setara di antarmuka pengguna hanya dimungkinkan dengan satu bentuk (tindakan seperti mengedit teks dalam bentuk atau mengedit titik bentuk bebas).

Pedoman sebelumnya juga berlaku ketika Anda mengatur properti bentuk yang dikelompokkan dalam objek sekunder koleksi  ShapeRange  , seperti  objek FillFormat  . Jika objek sekunder mewakili operasi yang dapat dilakukan pada beberapa objek yang dipilih di antarmuka pengguna, Anda akan dapat mengembalikan objek dari koleksi  ShapeRange  dan mengatur propertinya. Misalnya, Anda bisa menggunakan  properti Fill  untuk mengembalikan  objek FillFormat  yang mewakili isian semua bentuk dalam  koleksi ShapeRange  . Menyetel properti  objek FillFormat ini  akan menyetel properti yang sama untuk semua bentuk individual dalam  koleksi ShapeRange  .

Mengulang koleksi Bentuk atau ShapeRange

Bahkan jika Anda tidak dapat melakukan operasi pada beberapa bentuk di antarmuka pengguna secara bersamaan dengan memilihnya lalu menggunakan perintah, Anda dapat melakukan tindakan serupa secara terprogram dengan mengulang melalui koleksi  Bentuk  atau melalui  koleksi ShapeRange  yang berisi bentuk yang Anda ingin dikerjakan, dan menerapkan properti dan metode yang sesuai pada masing-masing  objek Shape  dalam koleksi. Contoh berikut mengulang semua bentuk dan menambahkan teks ke setiap bentuk yang merupakan BentukOtomatis. dan menambahkan teks ke setiap bentuk yang merupakan BentukOtomatis.myDocument

VB

Set myDocument = ActivePresentation.Slides(1) 
For Each sh In myDocument.Shapes 
    If sh.Type = msoAutoShape Then 
        sh.TextFrame.TextRange.InsertAfter " (version 1)" 
    End If 
Next

Contoh berikut membuat  koleksi ShapeRange  yang berisi semua bentuk yang dipilih saat ini di jendela aktif dan menyetel teks di setiap bentuk dalam koleksi yang bisa berisi teks.

VB

For Each sh in ActiveWindow.Selection.ShapeRange
    If sh.HasTextFrame Then
        sh.TextFrame.TextRange = "Initially selected"
    End If
Next

Menyelaraskan, mendistribusikan, dan mengelompokkan bentuk dalam rentang bentuk

Gunakan  metode Align  dan  Distribute  untuk memposisikan sekumpulan bentuk relatif satu sama lain atau relatif terhadap dokumen yang memuatnya. Gunakan  metode Group  atau  metode Regroup  untuk membentuk satu bentuk yang dikelompokkan dari sekumpulan bentuk.

Tinggalkan Komentar

Cara Memperbaiki Rumus Excel yang Tidak Menghitung Otomatis dalam 3 Langkah Mudah

Cara Memperbaiki Rumus Excel yang Tidak Menghitung Otomatis dalam 3 Langkah Mudah

Perbaiki rumus Excel yang tidak menghitung secara otomatis dalam tiga langkah: pulihkan mode perhitungan, paksa perhitungan ulang, dan perbaiki rumus yang diformat sebagai teks.

Template Jadwal Pembersihan Mingguan yang Dapat Dicetak untuk Host Airbnb (Word & PDF)

Template Jadwal Pembersihan Mingguan yang Dapat Dicetak untuk Host Airbnb (Word & PDF)

Gunakan jadwal pembersihan mingguan yang dapat dicetak ini untuk hosting Airbnb guna mengatur pergantian tamu, pembersihan rutin, pengisian ulang stok, inspeksi, dan konversi dari Word ke PDF.

Template Lembar Log Pemeliharaan Peralatan Excel untuk Manajer Bengkel: Panduan Penyiapan 4 Langkah

Template Lembar Log Pemeliharaan Peralatan Excel untuk Manajer Bengkel: Panduan Penyiapan 4 Langkah

Buat log pemeliharaan peralatan Excel yang praktis untuk manajer bengkel dengan ID aset, riwayat servis, tanggal jatuh tempo, kontrol status, pelacakan downtime, dan daftar periksa audit akhir.

Template PowerPoint Pitch Deck Investor Minimalis untuk Startup Teknologi: Blueprint 12 Slide yang Praktis

Template PowerPoint Pitch Deck Investor Minimalis untuk Startup Teknologi: Blueprint 12 Slide yang Praktis

Buat pitch deck investor minimalis di PowerPoint dengan struktur 12 slide praktis untuk startup teknologi, ditambah panduan mengenai bukti, metrik, klaim penggalangan dana, dan template .potx yang dapat digunakan kembali.

Template PowerPoint Presentasi Listing Properti Modern Gratis: Panduan Praktis Pitching untuk Penjual

Template PowerPoint Presentasi Listing Properti Modern Gratis: Panduan Praktis Pitching untuk Penjual

Buat presentasi listing properti modern di PowerPoint dengan blueprint slide gratis, tips template terverifikasi, peringatan CMA, pemeriksaan hak foto, dan perlindungan Fair Housing.

HubSpot Free CRM vs. Zoho CRM: Pilihan Terbaik untuk Agen Properti Independen di Tahun 2026

HubSpot Free CRM vs. Zoho CRM: Pilihan Terbaik untuk Agen Properti Independen di Tahun 2026

Bandingkan HubSpot Free CRM dan Zoho CRM untuk agen properti independen, termasuk kontak, pipeline, otomatisasi, kustomisasi, penjadwalan, batas penggunaan, dan pemicu upgrade.

Cara Memperbaiki Audio Perekaman Layar PowerPoint yang Tidak Berfungsi di Windows

Cara Memperbaiki Audio Perekaman Layar PowerPoint yang Tidak Berfungsi di Windows

Perbaiki rekaman layar PowerPoint yang senyap dengan memeriksa kontrol Audio, izin mikrofon Windows, perangkat input aktif, ekspektasi audio sistem, dan pembaruan Office.

Template PDF Time Blocking Harian yang Dapat Dicetak untuk Profesional WFH: Panduan Pemula

Template PDF Time Blocking Harian yang Dapat Dicetak untuk Profesional WFH: Panduan Pemula

Gunakan template PDF time blocking harian yang dapat dicetak untuk merencanakan jam kerja fokus WFH, rapat, istirahat, tugas admin, dan buffer yang realistis tanpa membebani hari Anda.

Template Presentasi Laporan Status Proyek Gratis untuk Tim Agile

Template Presentasi Laporan Status Proyek Gratis untuk Tim Agile

Buat presentasi laporan status proyek Agile yang ringkas dengan tujuan sprint, hasil, risiko, sinyal kualitas, keputusan, dan langkah selanjutnya—tanpa mengubah slide menjadi tumpukan backlog.

Template Pelacak Pengeluaran Kontraktor Independen untuk Freelancer AS: Referensi Praktis 2026

Template Pelacak Pengeluaran Kontraktor Independen untuk Freelancer AS: Referensi Praktis 2026

Lacak pengeluaran bisnis freelance, struk, jarak tempuh, dan kategori Schedule C dengan referensi pelacak pengeluaran praktis 2026 untuk kontraktor AS.