จะสร้างและแทรกรูปร่างใน PowerPoint ด้วย VBA ได้อย่างไร

จะสร้างและแทรกรูปร่างใน PowerPoint ด้วย VBA ได้อย่างไร

เมื่อสองสามวันก่อน ฉันต้องการทำให้งานที่ค่อนข้างธรรมดาในการสร้างสไลด์ PowerPoint เป็นแบบอัตโนมัติ เมื่อทำให้ PowerPoint ทำงานโดยอัตโนมัติ คุณมักจะทำงานกับคอลเลกชันสไลด์และรูปร่าง สไลด์ค่อนข้างอธิบายตนเองได้ และรูปร่างก็เป็นทุกสิ่งทุกอย่าง รวมทั้งกล่องข้อความ ปุ่มการทำงาน ออบเจ็กต์สื่อ ป้ายกำกับ รูปภาพ คำบรรยายภาพ ผังงาน และอื่นๆ เป็นต้น แม้ว่าฉันจะนำเสนอเทคนิคต่างๆ ด้วย PowerPoint แต่ไวยากรณ์บางอย่างก็ค่อนข้างใช้ได้กับ Microsoft Word และ Excel

เพื่อเป็นการสรุป ก่อนที่คุณจะเริ่มต้นกับการพัฒนามาโคร VBA ใน PowerPoint คุณต้องเปิดใช้งานแท็บการพัฒนาของคุณ

ก่อนอื่น เรามาเริ่มด้วยการสร้างงานนำเสนอด้วยสไลด์บางส่วนโดยอัตโนมัติตามที่แสดงในบทช่วยสอนนี้: การสร้างงานนำเสนอ ในVBA

ตอนนี้ เราสามารถเริ่มทำงานกับ Shapes ได้แล้ว ก่อนอื่น ให้เปิด VBA Editor โดยกดปุ่ม Alt+ F11 หากคุณทำตามบทช่วยสอนก่อนหน้านี้ คุณควรมีโมดูล 1 ในรายการโมดูลของคุณ (ดังที่แสดงด้านล่าง)

การทำงานกับรูปร่างด้วย VBA

การเพิ่มกล่องข้อความด้วย VBA

เราจะเริ่มต้นด้วยการเพิ่มกล่องข้อความแนวตั้งในสไลด์แรกของเราในงานนำเสนอ เพิ่มรหัสต่อไปนี้ใน Module1 จากนั้นไปข้างหน้าและกดปุ่มบันทึก (Ctrl+s) และเรียกใช้แมโครของคุณ (กด F5 หรือกด 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

โปรดทราบว่าคุณสามารถปรับขนาดขนาดกล่องข้อความของคุณค่อนข้างง่ายด้วย VBA ในกรณีนี้ เราจะปรับขนาดรูปร่างแรกในสไลด์ที่สอง ปรับเปลี่ยนได้ตามต้องการ

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

เอฟเฟกต์ข้อความด้วย VBA

ให้เราสมมติว่าเราต้องการเพิ่มกล่องข้อความลงในสไลด์ทั้งหมดในงานนำเสนอ คราวนี้ดูน่าดึงดูดยิ่งขึ้นอีกเล็กน้อย ในการทำเช่นนั้น เราจะใช้ VBA เพื่อสร้างเอฟเฟกต์ข้อความแบบกำหนดเอง ซึ่งเราสามารถฝังลงในสไลด์อย่างน้อยหนึ่งสไลด์ในงานนำเสนอ ก่อนอื่นเราจะวนดูสไลด์การนำเสนอแล้วเพิ่มเอฟเฟกต์ข้อความตามต้องการ

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

นี่คือผลลัพธ์ ;-):

จะสร้างและแทรกรูปร่างใน PowerPoint ด้วย VBA ได้อย่างไร

โปรดทราบว่าคุณอาจใช้ลายน้ำง่ายๆ เพื่อให้ได้ผลลัพธ์ที่เฉพาะเจาะจงนี้

คำบรรยาย PowerPoint ด้วย VBA

ตัวอย่างต่อไปของเราคือการเพิ่มข้อความเสริมในงานนำเสนอของคุณ ในตัวอย่างนี้ เราจะเพิ่มคำบรรยายในสไลด์ที่สอง

Sub CreateCallout()

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

End Sub

การตั้งค่าคุณสมบัติของรูปร่าง

คุณสมบัติการจัดรูปแบบของรูปร่างหลายอย่างไม่ได้ถูกกำหนดโดยคุณสมบัติที่นำไปใช้กับ   วัตถุรูปร่าง  หรือ  ShapeRange โดยตรง แต่แอตทริบิวต์รูปร่างที่เกี่ยวข้องจะถูกจัดกลุ่มไว้ภายใต้วัตถุรอง เช่น  วัตถุ FillFormat  ซึ่งมีคุณสมบัติทั้งหมดที่เกี่ยวข้องกับการเติมรูปร่าง หรือ  วัตถุ LinkFormat  ซึ่งมีคุณสมบัติทั้งหมดที่ไม่ซ้ำกับวัตถุ OLE ที่เชื่อมโยง ในการตั้งค่าคุณสมบัติสำหรับรูปร่าง คุณต้องส่งคืนออบเจ็กต์ที่แสดงถึงชุดของคุณลักษณะรูปร่างที่เกี่ยวข้องก่อน จากนั้นจึงตั้งค่าคุณสมบัติของออบเจ็กต์ที่ส่งคืน ตัวอย่างเช่น คุณใช้  คุณสมบัติ Fill  เพื่อส่งกลับ  วัตถุ FillFormat  จากนั้นคุณตั้งค่า  คุณสมบัติ ForeColor  ของ  วัตถุ FillFormat  เพื่อตั้งค่าสีพื้นหน้าเติมสำหรับรูปร่างที่ระบุ ดังที่แสดงในตัวอย่างต่อไปนี้

วีบี

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

การใช้คุณสมบัติหรือเมธอดกับรูปร่างหลายรูปพร้อมกัน

ในส่วนต่อประสานกับผู้ใช้ มีการดำเนินการบางอย่างที่คุณสามารถทำได้โดยเลือกรูปร่างหลายแบบ ตัวอย่างเช่น คุณสามารถเลือกรูปร่างได้หลายแบบและตั้งค่าการเติมแต่ละรูปร่างทั้งหมดในคราวเดียว มีการดำเนินการอื่นๆ ที่คุณสามารถทำได้โดยเลือกรูปร่างเดียวเท่านั้น ตัวอย่างเช่น คุณสามารถแก้ไขข้อความในรูปร่างได้หากเลือกรูปร่างเดียวเท่านั้น

ใน Visual Basic มีสองวิธีในการนำคุณสมบัติและวิธีการไปใช้กับชุดของรูปร่าง สองวิธีนี้ช่วยให้คุณสามารถดำเนินการใดๆ ที่คุณสามารถทำได้กับรูปร่างเดียวในช่วงของรูปร่างต่างๆ ไม่ว่าคุณจะสามารถดำเนินการเดียวกันในส่วนติดต่อผู้ใช้ได้หรือไม่ก็ตาม

  • หากการดำเนินการทำงานกับรูปร่างที่เลือกหลายรายการในส่วนติดต่อผู้ใช้ คุณสามารถดำเนินการเดียวกันใน Visual Basic ได้ด้วยการสร้างคอล  เลกชัน ShapeRange ที่มีรูปร่างที่คุณต้องการใช้งาน และใช้คุณสมบัติและวิธีการที่เหมาะสมกับ  คอลเลกชันShapeRange  โดยตรง 

  • หากการดำเนินการไม่ทำงานกับรูปร่างที่เลือกหลายรายการในส่วนติดต่อผู้ใช้ คุณยังคงสามารถดำเนินการใน Visual Basic ได้โดยการวนซ้ำผ่านคอล  เลกชัน Shapes  หรือผ่าน  คอลเลกชัน ShapeRange  ที่มีรูปร่างที่คุณต้องการใช้งาน และใช้คุณสมบัติที่เหมาะสม และวิธีการกับ  วัตถุ Shape แต่ละรายการ  ในคอลเลกชัน

คุณสมบัติและวิธีการหลายอย่างที่ใช้กับ  วัตถุ รูปร่าง  และ  คอลเลกชัน ShapeRange  จะล้มเหลวหากนำไปใช้กับรูปร่างบางประเภท ตัวอย่างเช่น  คุณสมบัติ TextFrame  จะล้มเหลวหากนำไปใช้กับรูปร่างที่ไม่มีข้อความ หากคุณไม่แน่ใจว่าแต่ละรูปร่างใน  คอลเลกชัน ShapeRange  สามารถมีคุณสมบัติหรือวิธีการบางอย่างที่นำไปใช้กับรูปร่างนั้นได้ อย่านำคุณสมบัติหรือวิธีการดังกล่าวไปใช้กับคอ  ลเลก  ชันShapeRange หากคุณต้องการใช้คุณสมบัติหรือวิธีการอย่างใดอย่างหนึ่งเหล่านี้กับคอลเลกชันของรูปร่าง คุณต้องวนซ้ำคอลเลกชันและทดสอบรูปร่างแต่ละรูปร่างเพื่อให้แน่ใจว่าเป็นรูปร่างประเภทที่เหมาะสม ก่อนที่จะนำคุณสมบัติหรือวิธีการไปใช้กับรูปร่างนั้น

การใช้คุณสมบัติหรือวิธีการกับคอลเลกชัน ShapeRange

หากคุณสามารถดำเนินการกับรูปร่างที่เลือกได้หลายรูปร่างในอินเทอร์เฟซผู้ใช้พร้อมกัน คุณสามารถดำเนินการเทียบเท่าทางโปรแกรมได้โดยการสร้างคอ  ลเลกชัน ShapeRange  จากนั้นนำคุณสมบัติหรือวิธีการที่เหมาะสมไปใช้กับคอลเลกชันดังกล่าว ตัวอย่างต่อไปนี้สร้างช่วงรูปร่างที่มีรูปร่างอัตโนมัติชื่อ "ดาราใหญ่" และ "ดาวดวงน้อย" และใช้การเติมไล่ระดับสีกับรูปร่างเหล่านั้น และใช้การเติมไล่ระดับสีกับรูปร่างเหล่านั้นmyDocument

วีบี

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

ต่อไปนี้เป็นแนวทางทั่วไปเกี่ยวกับวิธีการทำงานของคุณสมบัติและวิธีการเมื่อนำไปใช้กับ   คอลเลกชันShapeRange

  • การใช้วิธีการกับคอลเลกชันจะเทียบเท่ากับการใช้วิธีการกับ  วัตถุ รูปร่าง แต่ละรายการ  ในคอลเลกชันนั้น

  • การตั้งค่าคุณสมบัติของคอลเลกชันจะเทียบเท่ากับการตั้งค่าคุณสมบัติของรูปร่างแต่ละรูปร่างในช่วงนั้น

  • คุณสมบัติของคอลเลกชันที่ส่งกลับค่าคงที่จะส่งกลับค่าของคุณสมบัติสำหรับรูปร่างแต่ละรูปร่างในคอลเลกชัน ถ้ารูปร่างทั้งหมดในคอลเลกชันมีค่าเท่ากันสำหรับคุณสมบัตินั้น หากรูปร่างในคอลเลกชันไม่ได้มีค่าเท่ากันสำหรับคุณสมบัติ ก็จะส่งกลับค่าคงที่ "ผสม"

  • คุณสมบัติของคอลเลกชันที่ส่งคืนชนิดข้อมูลแบบง่าย (เช่น  LongSingleหรือ  String ) จะส่งกลับค่าของคุณสมบัติสำหรับรูปร่างแต่ละรายการ หากรูปร่างทั้งหมดในคอลเลกชันมีค่าเหมือนกันสำหรับคุณสมบัตินั้น

  • ค่าของคุณสมบัติบางอย่างสามารถส่งคืนหรือตั้งค่าได้ก็ต่อเมื่อมีรูปร่างเดียวในคอลเลกชันเท่านั้น หากมีรูปร่างมากกว่าหนึ่งรูปร่างในคอลเลกชัน จะเกิดข้อผิดพลาดรันไทม์เกิดขึ้น โดยทั่วไปจะเป็นกรณีของการส่งคืนหรือการตั้งค่าคุณสมบัติเมื่อการดำเนินการที่เทียบเท่าในส่วนติดต่อผู้ใช้สามารถทำได้ด้วยรูปร่างเดียวเท่านั้น (การดำเนินการ เช่น การแก้ไขข้อความในรูปร่าง หรือการแก้ไขจุดของรูปแบบอิสระ)

แนวทางก่อนหน้านี้ยังใช้เมื่อคุณตั้งค่าคุณสมบัติของรูปร่างที่จัดกลุ่มภายใต้วัตถุรองของ  คอ ลเลกชัน ShapeRange  เช่น   วัตถุFillFormat หากออบเจ็กต์รองแสดงถึงการดำเนินการที่สามารถทำได้กับออบเจ็กต์ที่เลือกหลายรายการในอินเทอร์เฟซผู้ใช้ คุณจะสามารถส่งคืนออบเจ็กต์จากคอลเลกชั่น  ShapeRange  และตั้งค่าคุณสมบัติของออบเจ็กต์ได้ ตัวอย่างเช่น คุณสามารถใช้  คุณสมบัติ Fill  เพื่อส่งกลับ  วัตถุ FillFormat  ที่แสดงถึงการเติมของรูปร่างทั้งหมดใน   คอลเลกชันShapeRange การตั้งค่าคุณสมบัติของ  วัตถุ FillFormat นี้  จะตั้งค่าคุณสมบัติเดียวกันสำหรับรูปร่างแต่ละรูปร่างทั้งหมดใน   คอลเลกชันShapeRange

การวนซ้ำคอลเลกชัน Shapes หรือ ShapeRange

แม้ว่าคุณจะไม่สามารถดำเนินการกับรูปร่างต่างๆ ในอินเทอร์เฟซผู้ใช้พร้อมกันได้โดยการเลือกรูปร่างเหล่านั้นแล้วใช้คำสั่ง คุณสามารถดำเนินการที่เทียบเท่ากันทางโปรแกรมได้โดยการวนซ้ำผ่านคอลเลก  ชัน Shapes  หรือผ่าน  คอลเลกชัน ShapeRange  ที่มีรูปร่างที่คุณอยู่ ต้องการทำงานและใช้คุณสมบัติและวิธีการที่เหมาะสมกับ  วัตถุ รูปร่าง แต่ละ  รายการในคอลเลกชัน ตัวอย่างต่อไปนี้วนซ้ำรูปร่างทั้งหมดและเพิ่มข้อความลงในแต่ละรูปร่างที่เป็นรูปร่างอัตโนมัติ และเพิ่มข้อความให้กับแต่ละรูปร่างที่เป็นรูปร่างอัตโนมัติmyDocument

วีบี

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

ตัวอย่างต่อไปนี้สร้าง  คอลเลกชัน ShapeRange  ที่มีรูปร่างที่เลือกในปัจจุบันทั้งหมดในหน้าต่างที่ใช้งานอยู่ และตั้งค่าข้อความในแต่ละรูปร่างในคอลเลกชันที่สามารถประกอบด้วยข้อความได้

วีบี

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

การจัดแนว การกระจาย และการจัดกลุ่มรูปร่างในช่วงรูปร่าง

ใช้  วิธีการ จัดตำแหน่ง  และ  กระจาย  เพื่อวางตำแหน่งชุดของรูปร่างที่สัมพันธ์กันหรือสัมพันธ์กับเอกสารที่มีรูปร่างเหล่านั้น ใช้  วิธี จัดกลุ่ม  หรือ  วิธี จัดกลุ่มใหม่  เพื่อสร้างรูปร่างที่จัดกลุ่มเดียวจากชุดของรูปร่าง


ขิง 2.7.53.0

ขิง 2.7.53.0

Ginger เป็นตัวตรวจสอบการสะกดและไวยากรณ์ฟรี

บล็อก

บล็อก

Blocks เป็นเกมทางปัญญาสำหรับนักเรียนชั้นประถมศึกษาปีที่ 3 เพื่อฝึกฝนทักษะการตรวจจับและการมองเห็น และรวมอยู่ในโปรแกรมสนับสนุนการสอนด้านไอทีโดยครู

พรีซี่ 6.26

พรีซี่ 6.26

Prezi เป็นแอปพลิเคชั่นฟรีที่ให้คุณสร้างงานนำเสนอดิจิทัลทั้งออนไลน์และออฟไลน์

แมทเวย์

แมทเวย์

Mathway เป็นแอปที่มีประโยชน์มาก ๆ ที่สามารถช่วยคุณแก้ปัญหาทางคณิตศาสตร์ที่ต้องใช้เครื่องมือที่ซับซ้อนมากกว่าเครื่องคิดเลขในอุปกรณ์ของคุณ

อะโดบี พรีเซนเตอร์

อะโดบี พรีเซนเตอร์

Adobe Presenter เป็นซอฟต์แวร์อีเลิร์นนิงที่เผยแพร่โดย Adobe Systems บนแพลตฟอร์ม Microsoft Windows ในรูปแบบปลั๊กอิน Microsoft PowerPoint

ทูแคน 2.3.0

ทูแคน 2.3.0

Toucan เป็นแพลตฟอร์มเทคโนโลยีการศึกษา ช่วยให้คุณเรียนรู้ภาษาใหม่ในขณะที่ท่องเว็บไซต์ทั่วไปในชีวิตประจำวัน

ENetViet 24.2

ENetViet 24.2

eNetViet เป็นแอปพลิเคชั่นที่ช่วยเชื่อมโยงผู้ปกครองกับโรงเรียนที่บุตรหลานกำลังศึกษาอยู่ เพื่อให้พวกเขาสามารถเข้าใจสถานการณ์การเรียนรู้ในปัจจุบันของบุตรหลานได้อย่างชัดเจน

การพิมพ์อย่างรวดเร็ว

การพิมพ์อย่างรวดเร็ว

RapidTyping เป็นเครื่องมือฝึกแป้นพิมพ์ที่สะดวกและใช้งานง่าย ซึ่งจะช่วยให้คุณปรับปรุงความเร็วในการพิมพ์และลดข้อผิดพลาดในการสะกดคำ ด้วยบทเรียนที่จัดไว้สำหรับหลายระดับ RapidTyping จะสอนวิธีพิมพ์หรือพัฒนาทักษะที่มีอยู่

ประเภทคณิตศาสตร์ 7.4.10.53

ประเภทคณิตศาสตร์ 7.4.10.53

MathType เป็นซอฟต์แวร์สมการเชิงโต้ตอบจากนักพัฒนา Design Science (Dessci) ซึ่งช่วยให้คุณสร้างและใส่คำอธิบายประกอบทางคณิตศาสตร์สำหรับการประมวลผลคำ การนำเสนอ eLearning ฯลฯ ตัวแก้ไขนี้ยังใช้ในการสร้างเอกสาร TeX, LaTeX และ MathML อีกด้วย

ไวยากรณ์

ไวยากรณ์

แอปที่ขับเคลื่อนด้วย AI ของ Grammarly ช่วยให้ผู้คนสื่อสารได้อย่างมีประสิทธิภาพมากขึ้น ผู้ใช้หลายล้านคนพึ่งพา Grammarly ทุกวันเพื่อทำให้ข้อความ เอกสาร และโพสต์บนโซเชียลมีเดียมีความชัดเจน ปราศจากข้อผิดพลาด และเป็นมืออาชีพมากขึ้น