Bagaimana cara membuat dan menyisipkan bentuk di PowerPoint dengan VBA?

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.


Instruksi menonaktifkan Webex agar tidak diluncurkan secara otomatis saat startup

Instruksi menonaktifkan Webex agar tidak diluncurkan secara otomatis saat startup

Petunjuk menonaktifkan Webex agar tidak diluncurkan secara otomatis saat startup Kami memiliki berbagai cara untuk menonaktifkan Cisco Webex Meetings agar tidak l...

Petunjuk untuk Menyalin Janji Outlook

Petunjuk untuk Menyalin Janji Outlook

Petunjuk untuk Menyalin Janji Outlook Menyalin janji temu kalender Outlook ke tanggal lain dapat berguna untuk menjadwalkan ulang rapat...

Game tidak diblokir di iPad di sekolah 2024

Game tidak diblokir di iPad di sekolah 2024

Game tidak diblokir di iPad di sekolah 2024 1. Game apa yang diblokir di sekolah? Beberapa permainan dibatasi di sekolah karena berbagai...

Game Komputer Sekolah yang Tidak Diblokir 2024

Game Komputer Sekolah yang Tidak Diblokir 2024

Game Komputer Sekolah yang Tidak Diblokir 2024 “Game yang tidak diblokir untuk sekolah” adalah masalah mendesak yang mengharuskan seseorang untuk mendengarkan kedua sisi...

Cara bermain game menggunakan iPad dan PC di sekolah 2024

Cara bermain game menggunakan iPad dan PC di sekolah 2024

Cara bermain game menggunakan iPad dan PC di sekolah 2024 Mengapa sekolah Anda memblokir game online? Pertama-tama, ini membantu mereka mencetak poin dengan...

10 situs game teratas yang tidak diblokir di sekolah tahun 2024

10 situs game teratas yang tidak diblokir di sekolah tahun 2024

10 situs web game teratas yang tidak diblokir di sekolah tahun 2024 Apakah Anda mencari Dunia Game yang Tidak Diblokir? Pada artikel ini, kita telah membahas aplikasi gratis terbaik...

10 game teratas yang paling sering dimainkan siswa di sekolah tanpa khawatir diblokir

10 game teratas yang paling sering dimainkan siswa di sekolah tanpa khawatir diblokir

10 game terpopuler yang paling sering dimainkan siswa di sekolah tanpa khawatir diblokir Apa keuntungan memainkan game online ini? te...

Cara Memperbaiki Kesalahan Pembaruan Mesin Utilitas Corsair

Cara Memperbaiki Kesalahan Pembaruan Mesin Utilitas Corsair

Pelajari solusi pemecahan masalah untuk mengatasi kesalahan pembaruan mesin utilitas corsair dan mengakses fitur baru alat ini.

[100% TERSELESAIKAN] Bagaimana Mengatasi Masalah Laptop Dell Tidak Mau Hidup?

[100% TERSELESAIKAN] Bagaimana Mengatasi Masalah Laptop Dell Tidak Mau Hidup?

Jika laptop Dell Anda tidak menyala, maka ikuti perbaikan yang bisa diterapkan yang diberikan dalam artikel & atasi Laptop Dell tidak mau hidup dengan mudah.

Perselisihan Tidak Akan Terbuka? 9 Solusi Mudah Memperbaiki Discord Tidak Terbuka

Perselisihan Tidak Akan Terbuka? 9 Solusi Mudah Memperbaiki Discord Tidak Terbuka

Jika mendapatkan Discord tidak akan membuka kesalahan & peluncuran gagal di OS Windows, maka ikuti solusi mudah dan perbaiki Discord tidak membuka masalah dengan benar ...