Bagaimana untuk mencipta dan memasukkan bentuk dalam PowerPoint dengan VBA?

Bagaimana untuk mencipta dan memasukkan bentuk dalam PowerPoint dengan VBA?

Beberapa hari yang lalu, saya ingin mengautomasikan tugas yang agak biasa untuk mencipta beberapa slaid PowerPoint. Apabila mengautomasikan PowerPoint, anda biasanya menggunakan koleksi Slaid dan Bentuk. Slaid agak menerangkan sendiri, dan bentuk adalah hampir semua perkara lain termasuk kotak teks, butang tindakan, objek media, label, gambar, serlahan ciri, carta alir dan sebagainya dan sebagainya. Walaupun saya akan mempamerkan teknik dengan PowerPoint, beberapa sintaks sebenarnya cukup sesuai untuk Microsoft Word dan Excel.

Sekadar meringkaskan, sebelum anda memulakan pembangunan makro VBA dalam PowerPoint, anda perlu mendayakan tab pembangunan anda .

Mula-mula, mari kita mulakan dengan membuat pembentangan secara automatik dengan beberapa slaid seperti yang ditunjukkan dalam tutorial ini: mencipta pembentangan dalam VBA .

Sekarang kita boleh mula bekerja dengan Shapes. Mula-mula, mari teruskan dan buka Editor VBA dengan menekan Alt+ F11. Jika anda mengikuti tutorial sebelumnya, anda sepatutnya mempunyai modul 1 dalam senarai Modul anda (seperti yang ditunjukkan di bawah)

Bekerja dengan Shapes dengan VBA

Menambah kotak teks dengan VBA

Kami akan mulakan dengan menambahkan kotak teks menegak pada slaid pertama kami dalam pembentangan. Tambahkan kod berikut pada Modul1, kemudian teruskan dan tekan butang Simpan (Ctrl+s) dan Jalankan makro anda (tekan F5 atau tekan Run Sub/Borang Pengguna).

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

Ambil perhatian bahawa anda boleh mengubah saiz dimensi kotak teks anda dengan agak mudah dengan VBA. Dalam kes ini, kami akan mengubah saiz bentuk pertama dalam slaid kedua, sila ubah suai mengikut keperluan.

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

Kesan Teks dengan VBA

Sekarang mari kita anggap bahawa kita ingin menambah kotak teks pada semua slaid dalam pembentangan, kali ini lebih menarik secara visual. Untuk berbuat demikian, kami akan menggunakan VBA untuk mencipta kesan Teks tersuai yang kami boleh benamkan ke dalam satu atau lebih slaid dalam pembentangan. Mula-mula kita akan mengulangi slaid pembentangan dan kemudian menambah kesan teks seperti yang diperlukan.

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

Inilah hasilnya ;-):

Bagaimana untuk mencipta dan memasukkan bentuk dalam PowerPoint dengan VBA?

Ambil perhatian bahawa anda juga boleh menggunakan tera air mudah untuk mencapai hasil khusus ini.

Serlahan ciri PowerPoint dengan VBA

Contoh seterusnya kami akan menambah butiran pada pembentangan anda. Dalam contoh ini, kami akan menambah butiran pada slaid 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

Menetapkan sifat untuk sesuatu bentuk

Banyak sifat pemformatan bentuk tidak ditetapkan oleh sifat yang digunakan terus pada  objek Shape  atau  ShapeRange  . Sebaliknya, atribut bentuk yang berkaitan dikumpulkan di bawah objek sekunder, seperti  objek FillFormat  , yang mengandungi semua sifat yang berkaitan dengan isian bentuk, atau  objek LinkFormat  , yang mengandungi semua sifat yang unik kepada objek OLE yang dipautkan. Untuk menetapkan sifat untuk bentuk, anda mesti mengembalikan objek yang mewakili set atribut bentuk yang berkaitan dan kemudian menetapkan sifat objek yang dikembalikan itu. Sebagai contoh, anda menggunakan  sifat Fill  untuk mengembalikan  objek FillFormat  , dan kemudian anda menetapkan  sifat ForeColor  bagi  objek FillFormat  untuk menetapkan warna latar depan isian untuk bentuk yang ditentukan, seperti yang ditunjukkan dalam contoh berikut.

VB

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

Menggunakan sifat atau kaedah kepada beberapa bentuk pada masa yang sama

Dalam antara muka pengguna, terdapat beberapa operasi yang boleh anda lakukan dengan beberapa bentuk yang dipilih; sebagai contoh, anda boleh memilih beberapa bentuk dan menetapkan semua isian individu mereka sekali gus. Terdapat operasi lain yang anda hanya boleh lakukan dengan satu bentuk yang dipilih; contohnya, anda hanya boleh mengedit teks dalam bentuk jika satu bentuk dipilih.

Dalam Visual Basic, terdapat dua cara untuk menggunakan sifat dan kaedah pada set bentuk. Kedua-dua cara ini membolehkan anda melakukan sebarang operasi yang boleh anda lakukan pada satu bentuk pada julat bentuk, sama ada anda boleh melakukan operasi yang sama dalam antara muka pengguna atau tidak.

  • Jika operasi berfungsi pada berbilang bentuk yang dipilih dalam antara muka pengguna, anda boleh melakukan operasi yang sama dalam Visual Basic dengan membina  koleksi ShapeRange  yang mengandungi bentuk yang anda ingin kerjakan dan menggunakan sifat dan kaedah yang sesuai terus ke koleksi  ShapeRange  .

  • Jika operasi tidak berfungsi pada berbilang bentuk yang dipilih dalam antara muka pengguna, anda masih boleh melaksanakan operasi dalam Visual Basic dengan menggelung melalui koleksi  Shapes  atau melalui  koleksi ShapeRange  yang mengandungi bentuk yang anda ingin kerjakan dan menggunakan sifat yang sesuai dan kaedah kepada objek Bentuk individu   dalam koleksi.

Banyak sifat dan kaedah yang digunakan pada  objek Shape  dan  koleksi ShapeRange  gagal jika digunakan pada jenis bentuk tertentu. Sebagai contoh,  sifat TextFrame  gagal jika digunakan pada bentuk yang tidak boleh mengandungi teks. Jika anda tidak yakin bahawa setiap bentuk dalam  koleksi ShapeRange  boleh mempunyai sifat atau kaedah tertentu yang digunakan padanya, jangan gunakan sifat atau kaedah itu pada  koleksi ShapeRange  . Jika anda ingin menggunakan salah satu sifat atau kaedah ini pada koleksi bentuk, anda mesti mengulang koleksi dan menguji setiap bentuk individu untuk memastikan ia adalah jenis bentuk yang sesuai sebelum menggunakan sifat atau kaedah padanya.

Menggunakan sifat atau kaedah pada koleksi ShapeRange

Jika anda boleh melakukan operasi pada berbilang bentuk yang dipilih dalam antara muka pengguna pada masa yang sama, anda boleh melakukan program yang setara dengan membina koleksi  ShapeRange  dan kemudian menggunakan sifat atau kaedah yang sesuai untuknya. Contoh berikut membina julat bentuk yang mengandungi AutoShapes bernama "Big Star" dan "Little Star" dan menggunakan isian kecerunan padanya dan menggunakan isian kecerunan padanya.myDocument

VB

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

Berikut ialah garis panduan umum tentang cara sifat dan kaedah bertindak apabila ia digunakan pada  koleksi ShapeRange  .

  • Menggunakan kaedah pada koleksi adalah sama dengan menggunakan kaedah untuk setiap  objek Shape individu  dalam koleksi itu.

  • Menetapkan nilai sifat koleksi adalah sama dengan menetapkan nilai sifat setiap bentuk individu dalam julat itu.

  • Sifat koleksi yang mengembalikan pemalar mengembalikan nilai sifat untuk bentuk individu dalam koleksi jika semua bentuk dalam koleksi mempunyai nilai yang sama untuk sifat itu. Jika tidak semua bentuk dalam koleksi mempunyai nilai yang sama untuk harta itu, ia mengembalikan pemalar "campuran".

  • Sifat koleksi yang mengembalikan jenis data ringkas (seperti  LongSingle atau  String ) mengembalikan nilai sifat untuk bentuk individu jika semua bentuk dalam koleksi mempunyai nilai yang sama untuk sifat tersebut.

  • Nilai sesetengah sifat boleh dikembalikan atau ditetapkan hanya jika terdapat betul-betul satu bentuk dalam koleksi. Jika terdapat lebih daripada satu bentuk dalam koleksi, ralat masa jalan berlaku. Ini biasanya berlaku untuk mengembalikan atau menetapkan sifat apabila tindakan yang setara dalam antara muka pengguna boleh dilakukan hanya dengan satu bentuk (tindakan seperti mengedit teks dalam bentuk atau mengedit titik bentuk bebas).

Garis panduan sebelumnya juga digunakan apabila anda menetapkan sifat bentuk yang dikumpulkan di bawah objek sekunder koleksi  ShapeRange  , seperti  objek FillFormat  . Jika objek kedua mewakili operasi yang boleh dilakukan pada berbilang objek terpilih dalam antara muka pengguna, anda akan dapat mengembalikan objek daripada koleksi  ShapeRange  dan menetapkan sifatnya. Sebagai contoh, anda boleh menggunakan  sifat Fill  untuk mengembalikan  objek FillFormat  yang mewakili isian semua bentuk dalam  koleksi ShapeRange  . Menetapkan sifat  objek FillFormat ini  akan menetapkan sifat yang sama untuk semua bentuk individu dalam  koleksi ShapeRange  .

Menggelung melalui koleksi Shapes atau ShapeRange

Walaupun anda tidak boleh melakukan operasi pada beberapa bentuk dalam antara muka pengguna pada masa yang sama dengan memilihnya dan kemudian menggunakan arahan, anda boleh melakukan tindakan yang setara secara pengaturcaraan dengan menggelung melalui koleksi  Shapes  atau melalui  koleksi ShapeRange  yang mengandungi bentuk yang anda ingin bekerja dengannya, dan menggunakan sifat dan kaedah yang sesuai pada  objek Shape individu  dalam koleksi. Contoh berikut menggelungkan semua bentuk dan menambah teks pada setiap bentuk yang AutoShape. dan menambah teks pada setiap bentuk yang AutoShape.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 membina  koleksi ShapeRange  yang mengandungi semua bentuk yang dipilih pada masa ini dalam tetingkap aktif dan menetapkan teks dalam setiap bentuk dalam koleksi yang boleh mengandungi teks.

VB

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

Menjajarkan, mengedar dan mengumpulkan bentuk dalam julat bentuk

Gunakan  kaedah Jajar  dan  Edarkan  untuk meletakkan set bentuk relatif kepada satu sama lain atau relatif kepada dokumen yang mengandunginya. Gunakan  kaedah Kumpulan  atau  kaedah Kumpulan semula  untuk membentuk satu bentuk berkumpulan daripada satu set bentuk.


Halia 2.7.53.0

Halia 2.7.53.0

Halia ialah penyemak ejaan dan tatabahasa percuma.

Blok

Blok

Blocks ialah permainan intelektual untuk pelajar sekolah rendah gred 3 untuk mempraktikkan kemahiran pengesanan dan mata mereka dan disertakan oleh guru dalam program sokongan pengajaran IT.

Prezi 6.26

Prezi 6.26

Prezi ialah aplikasi percuma yang membolehkan anda membuat persembahan digital, dalam talian dan luar talian.

Mathway

Mathway

Mathway ialah apl yang sangat berguna yang boleh membantu anda menyelesaikan semua masalah matematik yang memerlukan alat yang lebih kompleks daripada kalkulator terbina dalam peranti anda.

Adobe Presenter

Adobe Presenter

Adobe Presenter ialah perisian e-Pembelajaran yang dikeluarkan oleh Adobe Systems yang tersedia pada platform Microsoft Windows sebagai pemalam Microsoft PowerPoint.

Toucan 2.3.0

Toucan 2.3.0

Toucan ialah platform teknologi pendidikan. Ia membolehkan anda mempelajari bahasa baharu semasa menyemak imbas tapak web biasa setiap hari.

ENetViet 24.2

ENetViet 24.2

eNetViet ialah aplikasi yang membantu menghubungkan ibu bapa dengan sekolah tempat anak mereka belajar supaya mereka dapat memahami dengan jelas situasi pembelajaran semasa anak mereka.

Duolingo

Duolingo

Duolingo - Belajar Bahasa Secara Percuma, atau ringkasnya Duolingo, ialah program pendidikan yang membolehkan anda mempelajari dan mengamalkan pelbagai bahasa.

RapidTyping

RapidTyping

RapidTyping ialah alat latihan papan kekunci yang mudah dan mudah digunakan yang akan membantu anda meningkatkan kelajuan menaip anda dan mengurangkan ralat ejaan. Dengan pelajaran yang dianjurkan untuk pelbagai peringkat, RapidTyping akan mengajar anda cara menaip atau meningkatkan kemahiran sedia ada.

MathType 7.4.10.53

MathType 7.4.10.53

MathType ialah perisian persamaan interaktif daripada pembangun Sains Reka Bentuk (Dessci), yang membolehkan anda mencipta dan menganotasi tatatanda matematik untuk pemprosesan perkataan, pembentangan, ePembelajaran, dll. Editor ini juga digunakan untuk mencipta dokumen TeX, LaTeX dan MathML.