จะสร้างและแทรกรูปร่างใน 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

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

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


วิธีแปลอีเมลขาเข้าใน Microsoft Outlook

วิธีแปลอีเมลขาเข้าใน Microsoft Outlook

เรียนรู้วิธีแปลอีเมลขาเข้าผ่าน Microsoft Outlook อย่างง่ายดาย โดยปรับการตั้งค่าเพื่อแปลอีเมลหรือดำเนินการแปลแบบครั้งเดียว

10 วิธีในการแก้ไขข้อผิดพลาด NET :: ERR_CERT_AUTHORITY_INVALID อย่างถาวร

10 วิธีในการแก้ไขข้อผิดพลาด NET :: ERR_CERT_AUTHORITY_INVALID อย่างถาวร

อ่านคำแนะนำเพื่อปฏิบัติตามวิธีแก้ปัญหาทีละขั้นตอนสำหรับผู้ใช้และเจ้าของเว็บไซต์เพื่อแก้ไขข้อผิดพลาด NET::ERR_CERT_AUTHORITY_INVALID ใน Windows 10

CefSharp.BrowserSubprocess คืออะไร ฉันควรหยุดมันไหม?

CefSharp.BrowserSubprocess คืออะไร ฉันควรหยุดมันไหม?

ค้นหาข้อมูลเกี่ยวกับ CefSharp.BrowserSubprocess.exe ใน Windows พร้อมวิธีการลบและซ่อมแซมข้อผิดพลาดที่เกี่ยวข้อง มีคำแนะนำที่เป็นประโยชน์

ไม่สามารถจับภาพหน้าจอเนื่องจากนโยบายความปลอดภัย? นี่คือเหตุผล

ไม่สามารถจับภาพหน้าจอเนื่องจากนโยบายความปลอดภัย? นี่คือเหตุผล

ค้นพบวิธีแก้ไขปัญหาเมื่อคุณไม่สามารถจับภาพหน้าจอได้เนื่องจากนโยบายความปลอดภัยในแอป พร้อมเทคนิคที่มีประโยชน์มากมายในการใช้ Chrome และวิธีแชร์หน้าจออย่างง่ายๆ.

ติดตั้ง Windows 10 บน M1 Mac และบอกลา Boot Camp

ติดตั้ง Windows 10 บน M1 Mac และบอกลา Boot Camp

ในที่สุด คุณสามารถติดตั้ง Windows 10 บน M1 Macs โดยใช้ Parallels Desktop 16 สำหรับ Mac นี่คือขั้นตอนที่จะทำให้เป็นไปได้

Fallout 3 จะไม่เปิด/ไม่ทำงานบน Windows 10 [แก้ไขด่วน]

Fallout 3 จะไม่เปิด/ไม่ทำงานบน Windows 10 [แก้ไขด่วน]

ประสบปัญหาเช่น Fallout 3 จะไม่เปิดขึ้นหรือไม่ทำงานบน Windows 10? อ่านบทความนี้เพื่อเรียนรู้วิธีทำให้ Fallout 3 ทำงานบน Windows 10 ได้อย่างง่ายดาย

[แก้ไขแล้ว] จะแก้ไขข้อผิดพลาดแอปพลิเคชัน 0xc0000142 และ 0xc0000005 ได้อย่างไร

[แก้ไขแล้ว] จะแก้ไขข้อผิดพลาดแอปพลิเคชัน 0xc0000142 และ 0xc0000005 ได้อย่างไร

วิธีแก้ไขข้อผิดพลาด Application Error 0xc0000142 และ 0xc0000005 ด้วยเคล็ดลับที่มีประสิทธิภาพและการแก้ปัญหาที่สำคัญ

การแก้ไข: การใช้งาน CPU สูงของความเข้ากันได้ของ Microsoft Telemetry อย่างถาวร

การแก้ไข: การใช้งาน CPU สูงของความเข้ากันได้ของ Microsoft Telemetry อย่างถาวร

เรียนรู้วิธีแก้ไข Microsoft Compatibility Telemetry ประมวลผลการใช้งาน CPU สูงใน Windows 10 และวิธีการปิดการใช้งานอย่างถาวร...

[แก้ไขแล้ว] ข้อผิดพลาดของ World War Z – หยุดทำงาน ไม่เปิดตัว หน้าจอดำและอื่น ๆ

[แก้ไขแล้ว] ข้อผิดพลาดของ World War Z – หยุดทำงาน ไม่เปิดตัว หน้าจอดำและอื่น ๆ

หากพบข้อผิดพลาดและข้อบกพร่องของ World War Z เช่น การหยุดทำงาน ไม่โหลด ปัญหาการเชื่อมต่อ และอื่นๆ โปรดอ่านบทความและเรียนรู้วิธีแก้ไขและเริ่มเล่นเกม

วิธีการใช้ ลบ และค้นหาข้อความเน้นใน Word

วิธีการใช้ ลบ และค้นหาข้อความเน้นใน Word

เมื่อคุณต้องการให้ข้อความในเอกสารของคุณโดดเด่น คุณสามารถใช้เครื่องมือในตัวที่มีประโยชน์ได้ ต่อไปนี้คือวิธีการเน้นข้อความใน Word