หากมีคำถาม ขอให้ไปโพสต์ลง เว็บบอร์ดจีทูจีเน็ตดอตคอม ตัวใหม่แทนน่ะครับ

หรือติดต่อเข้ามาทาง Inbox ที่ เฟซบุ๊ค ผมครับ

หน้าหลัก
ข่าวสาร - บทความ ทั้งหมด
VB 6/VB.Net
ASP/ASP.Net
จับฉ่ายคอมพิวเตอร์
เรียนรู้ผ่าน Flash Movie
บทความที่มีผู้ตอบล่าสุด  
 RSS Feeds
 ดาวน์โหลดโปรแกรม RSS Reader ได้ที่นี่ ...   Download โปรแกรม RSS Reader

Forum - www.g2gnet.com
Webmaster - www.g2gnet.com
Visitors - Session views
 5 5 9 1 7 4 6

7 ธันวาคม พ.ศ.2549
105 Users On-Line.
Visitors - Page views
 8 9 4 6 7 9 6
1 กุมภาพันธ์ พ.ศ.2551

Google   
เว็บ g2gnet.com
ขนาดตัวอักษร:  

โปรแกรม PowerPoint กับ CAI - ตอนการสร้างบทเรียนแบบไดนามิค

Category »  จับฉ่ายคอมพิวเตอร์
โดย : Webmaster เมื่อ 20/7/2553   เวลา: 11:24
(อ่าน : 50587) 
ผมต้องเรียนให้ครู อาจารย์ทุกท่านที่เข้ามาอ่านบทความของผมให้ทราบก่อนน่ะครับ ... ประสบการณ์ผมเองมาทั้งสายงานโปรแกรมมิ่ง รวมทั้งสายงานสอนด้วย และ ผมเองไม่ใช่นักวิชาการ ผมอยู่สายปฏิบัติมาโดยตลอดในชีวิตการทำงานของผม ดังนั้นมุมมอง หรือ ทัศนคติต่อการทำสื่อเหล่านี้ ผมอาจจะมีแนวคิดที่แตกต่างออกไป (บ้าง) อย่างคำว่า CAI CBT หรือ จะ C อะไรก็แล้วแต่ (ผมขอเรียกรวมๆว่า CAI) ผมให้คำจำกัดความเอาไว้ว่า มันต้องเป็นได้ทั้งสื่อในการเรียน และ การสอน นั่นหมายความว่า งาน CAI ที่ผลิตออกมานั้น ครูผู้สอนสามารถนำมาใช้สอนในห้องเรียนได้ด้วย (หากสถานศึกษาพร้อม เครื่องมือพร้อม แต่ก็ยังไม่สำคัญเท่ากับตัวผู้สอนพร้อมหรอกน่ะครับ) และ ผู้เรียนยังสามารถนำกลับไปทบทวนด้วยตนเองได้อีก ... เปิดภาพมิติมุมมองใหม่ของโปรแกรม PowerPoint กับการทำสื่อการเรียน และ การสอน CAI
    วัตถุประสงค์หลัก
  • ต้องการสร้่างแรงบันดาลใจให้กับกลุ่มครู อาจารย์ ที่ตั้งใจทำสื่อ CAI ด้วยตัวเอง ... ผมไม่ได้ตั้งเป้าหมายเอาไว้เลยว่า เมื่อท่านอ่านบทความของผมชุดนี้แล้ว ท่านจะสามารถเข้าใจ หรือ นำไปทำเองได้ในตอนนี้ เพราะแทบจะทุกๆท่าน คงเขียนโปรแกรมไม่เป็นหรอกครับ แต่อย่างน้อยๆนี่คือ จุดเริ่มต้น ที่จะทำให้ครู อาจารย์ทั้งหลายได้เห็นถึงขีดความสามารถเพิ่มเติม (Extension) ของโปรแกรม PowerPoint ที่มีมากกว่าที่ท่านเคยคิดไว้
  • ต้องการให้ความรู้ข้อมูลที่ถูกต้อง เพราะหลายท่านก็คงจะชินกับคำว่า ปฏิสัมพันธ์ หรือ การโต้ตอบกับผู้เรียนได้ (Interactive) แท้จริงแล้ว มันไม่ใช่แค่การกดปุ่มเดินหน้า ถอยหลัง กลับเมนูหลัก จบโปรแกรม หรืออื่นๆ ได้แค่นั้น ... มันยัังต้องรวมเอาเรื่องของ Dynamic หรือ การเปลี่ยนแปลงได้ตลอดบทเรียน เข้ามาเกี่ยวข้องด้วย (เรื่องใหม่ของหลายๆคนล่ะครับ ... และจะได้เห็นภาพชัดเจนจากตัวอย่างนี้ไปเลย)
  • แนะนำเรื่องของภาษาที่จะนำมาฝึกฝน และ ใช้งาน ... การใช้งานความเป็นสำเร็จรูปของโปรแกรมใดๆก็ตามที มันไม่มีทางที่จะตอบสนองต่อการทำ CAI ได้เลย หากท่านไม่เขียน Script หรือ เขียน Code เพิ่มเติมเข้าไป ไม่ว่าจะเป็น Authorware ก็จะใช้ Script เหมือน Pascal, โปรแกรม SwishMax จะใช้ Script เหมือนภาษา C หรือ Adobe Flash ที่ใช้ผสมระหว่าง C/Pascal ... ส่วนผลิตภัณฑ์ของ Microsoft ก็จะเน้นมาที่ภาษา BASIC หรือที่เรียกว่า VBA - Visual Basic for Application (ปัจจุบันนี้ก็มี C#, C++, F# เข้ามาเอี่ยวด้วย) ... หากท่านได้เห็นบทความต่างๆของผมในเว็บไซต์นี้ ไม่ว่าจะเป็นเรื่องฐานข้อมูล การติดต่อ Hardware ระบบเครือข่าย หรือ แม้แต่การทำ CAI ผมเลือกภาษา BASIC มาใช้งานทั้งหมด ... เพราะภาษานี้มันไปได้หมดทุกสายงาน รวมทั้งยังไม่ยากเกินไปนักต่อการเรียนรู้ครับผม
  • ข้อดีที่พิเศษสุดๆ เนื่องจากการทำงานในลักษณะของ Dynamic คือ มีการเปลี่ยนแปลงผลตามโค้ดการทำงานที่วางเอาไว้ (เมื่อคำสั่งการทำงานไปถึง) จึงทำให้ไฟล์ที่ได้จะมีขนาดเล็กกว่าการจับยัดทุกสิ่งทุกอย่างไว้ในทุกๆ Slide เหมือนที่เคยทำๆักันมา ... นั่นคือไม่ต้องอาศัยขีดความสามารถของคอมพิวเตอร์สูงมากนัก

ครู อาจารย์หลายท่าน สอบถามผมมามากมาย กับคำถามที่ว่า หากต้องการทำสื่อ CAI จะต้องเริ่มต้นจากตรงไหนก่อนดี ... ผมตอบให้ได้แต่เพียงว่า "มีความตั้งใจจริงๆที่จะทำ" ก่อนครับ ... ท่านยังสอนเด็กๆได้เลยว่า ให้พวกหนูตั้งใจเรียน ขยัน หมั่นเพียร มีความอุตสาหะ เพื่ออนาคตที่ดีในวันข้างหน้า ... แล้วท่านจะสอนตัวเองไม่ได้เชียวเหรอครับ ...

ดาวน์โหลด
ดาวน์โหลดไฟล์โปรแกรม PowerPoint กับ CAI - ตอนการสร้างบทเรียนแบบไดนามิค (PPT 2003)

เรื่องที่เกี่ยวข้อง
โปรแกรม PowerPoint กับการเชื่อมต่อระบบฐานข้อมูล Access - การทำระบบ Login
การนำโปรแกรม PowerPoint มาทำเป็น CAI
โปรแกรม PowerPoint กับ คอมพิวเตอร์ช่วยสอน ตอนการลากวางวัตถุ (Drag & Drop)
ขั้นตอนของการเปิดเสียง-หยุดเสียง ในแต่ละ Scene ให้กับโปรแกรม SwishMax
การบันทึกเสียงประกอบการผลิตสื่อการเรียนการสอน ด้วยโปรแกรม Acoustica MP3 Audio Mixer
การทำข้อสอบแบบเติมคำด้วย Swishmax
ใครว่าทำข้อสอบผ่าน Flash มันเป็นเรื่องยากส์
การทำปุ่ม หรือ เมนู แบบง่ายๆ (ถึงง่ายมาก) ด้วยโปรแกรม SwishMax (Flash Video)
สร้างเมนูในรูปแบบ Flash โดยใช้โปรแกรม SwishMax อย่างง่าย
การใช้งาน SwishMax กับการทำภาพเคลื่อนไหว ... พื้นฐานสุดๆ จนแทบไม่อยากเชื่อ
Visual Basic 6.0 กับการพัฒนาสื่อการเรียน การสอน
เรียนรู้ SwishMax (หรือ Flash) เพื่อรับส่งข้อมูลไปมากับ MS Visual Basic 6.0 ภาค 1
เรียนรู้ SwishMax (หรือ Flash) เพื่อรับส่งข้อมูลไปมากับ MS Visual Basic 6.0 ภาค 2
การใช้งาน Drag & Drop ใน VB 6 เพื่อพัฒนาสื่อการเรียน การสอน (ภาค 1)
การใช้งาน Drag & Drop ใน VB 6 เพื่อพัฒนาสื่อการเรียน การสอน (ภาค 2)
โปรแกรมสุ่มตัวเลขจำนวนเต็มแบบไม่ให้ซ้ำกันเลย - Random Number
การประยุกต์ใช้งาน MS Visual Basic 6.0 กับการพัฒนาสื่อการเรียนการสอน (คณิตศาสตร์เพื่อหนูน้อย)

บอกกล่าวกันก่อน ... จะได้ไม่ต้องถามผมว่า ทำไมมีรายละเอียดให้น้อยจัง
ผมเองไม่มีเวลาพอที่จะมาอธิบาย รายละเอียด ของการใช้งาน Visual Basic for Application (VBA) ให้กับทุกๆท่านได้หรอกน่ะครับ ซึ่งหากท่านอยากจะทำเองเป็น โดยไม่ต้องไปพึ่ง หรือไปจ้างให้คนอื่นเขาทำให้ ท่านก็ต้องใฝ่รู้ ขวนขวายหากันเอาเอง เช่น หาซื้อหนังสือที่เกี่ยวข้องกับ VB หรือ VBA (สำหรับ PowerPoint หายากมาก เพราะส่วนมากจะมีแต่ Access หรือ Excel) หรือ การหา Course ที่เรียนเกี่ยวข้องกับเรื่องดังกล่าว ตามโรงเรียนสอนคอมพิวเตอร์เอาก็ได้ ... ผมได้หา eBook ภาคภาษาอังกฤษล้วนๆ (คือ ท่านจะเขียนโปรแกรมได้ ก็จะต้องอ่าน English ให้เป็นล่ะครับ) ที่คิดว่ามีประโยชน์ต่อพื้นฐานความรู้เรื่อง VBA มาให้ดาวน์โหลดกันครับ
ดาวน์โหลด eBook ที่เกี่ยวข้องกับ VBA
PowerPoint Advanced Presentation Techniques (CHM)
Absolute Beginner's Guide To VBA (CHM)
เริ่มต้นกันได้เลย ...
การเลือกแถบเครื่องมือของ Visual Basic
กล่องเครื่องมือ (ToolBox) จะประกอบไปด้วย Control ต่างๆของ Visual Basic เช่น ช่องกรอกข้อมูล (TextBox) ป้ายบอก (Label) หรือ ปุ่มกด (CommandButton) เป็นต้น

หากเราจะใช้งานตัวไหนให้คลิ๊กเลือกที่ตัวนั้น แล้วนำไปวาดลงใน Slide ได้เลย
การเลือก Control มาใช้งาน โดยการคลิ๊กเลือก Control ที่ต้องการ จากนั้นนำไปวาดลงบน Slide
การตั้งค่าคุณสมบัติ (Properties) ให้กับ Control ต่างๆที่จะนำมาใช้ในชิ้นงาน
    การปรับแต่งคุณสมบัติของ Control แบบ Design Time (คือ การตั้งค่าคุณสมบัติต่างๆของ Control ก่อนที่จะสั่ง Run Macro)
  • โดยจะมีการตั้งค่า Properties หลักๆดังต่อไปนี้ (ไม่จำเป็นต้องไปตั้งค่าทั้งหมดเลยน่ะครับ)
      CommandButon (ปุ่มกด)
    • Name = CommandButton1 (เพื่อบอกชื่อของ CommandButton เอาไว้ใช้อ้างอิงตอนเขียนโค้ด)
    • Font = Angsana New (หรือเลือกตัวอื่นๆก็ได้)
    • Caption = ป้ายบอกชื่อปุ่มว่ากดแล้วไปทำงานอะไร เช่น จบการทำงาน
      ComboBox (รายการให้เลือก)
    • Name = ComboBox1 (เพื่อบอกชื่อของ ComboBox เอาไว้ใช้อ้างอิงตอนเขียนโค้ด)
    • Font = Angsana New (หรือเลือกตัวอื่นๆก็ได้)
    • Style = 2 - fmStyleDropDownList (ไม่ให้มีการคีย์ข้อมูลเข้าไปได้)
      TextBox (ช่องกรอกข้อมูล)
    • Name = TextBox1 (เพื่อบอกชื่อของ TextBox เอาไว้ใช้อ้างอิงตอนเขียนโค้ด)
    • Font = Angsana New (หรือเลือกตัวอื่นๆก็ได้)
    • Text = กำหนดค่าให้กับ TextBox
      Label (ป้ายบอก)
    • Name = Label1 (เพื่อบอกชื่อของ Label เอาไว้ใช้อ้างอิงตอนเขียนโค้ด)
    • Font = Angsana New (หรือเลือกตัวอื่นๆก็ได้)
    • Caption = ป้ายบอก หรือ คำอธิบาย
      Image (แสดงภาพ)
    • Name = image1 (เพื่อบอกชื่อของ Image เอาไว้ใช้อ้างอิงตอนเขียนโค้ด)
    • BackStyle = 0 - fmBackStyleTransparent (มองภาพทะลุพื้นหลังสำหรับภาพประเภท GIF)
    • BorderStyle = 0 - fmBorderStyleNone (ไม่ใส่กรอบ)
    • PictureAlignment = 2 - fmPictureAlignmentCenter (ตั้งไว้ตำแหน่งกลาง)
    • PictureSizeMode = 1 - fmPictureSizeModeStretch (ให้แสดงภาพเท่าขนาดจริง)
การเรียกใช้งาน Visual Basic Editor (หรือกด Alt + F11 เลยก็ได้)
การ View Codeของ Visual Basic for Application (VBA)
เนื่องจากว่ามีการใช้งาน Macro ดังนั้นเมื่อเปิดไฟล์ขึ้นมา ต้องเลือกเปิดการใช้งาน Macro เอาไว้ด้วย
การเรียกใช้งาน Macro (หรือ กดปุ่ม Alt + F8)
เลือก Macro ที่ต้องการให้ทำงาน

ลำดับขั้นตอนการทำงาน

VBA สำหรับ Slide1 ที่อยู่ในโปรแกรม PowerPoint

Option Explicit

Private Sub CommandButton1_Click()
    
    ' เรียกไปยังฟังค์ชั่น หรือ โปรแกรมย่อยในการโหลดรายการเข้าสู่ ComboBox ก่อน
    Call Slide2.InitComboBox

    ' แล้วสั่งให้ไปยัง Slide ที่ต้องการโดยกำหนดจากหมายเลขประจำ Slide (ตัวอย่างมี 3 Slide)
    ActivePresentation.SlideShowWindow.View.GotoSlide (2)
    ' หรือ สั่งผ่าน Next หากเป็น Slide ถัดไป
    'ActivePresentation.SlideShowWindow.View.Next
End Sub

' จบการทำงาน ปิด PowerPoint
Private Sub CommandButton2_Click()
    ' อ้างอิงชื่อไฟล์
    With Application.Presentations("PowerPoint-ComboBox.ppt")
        ' สั่งบันทึก (Save) ก่อนออก
        .Saved = True
        .Close
    End With
    
End Sub

ลำดับขั้นตอนการทำงาน

VBA สำหรับ Slide2 ที่อยู่ในโปรแกรม PowerPoint

Option Explicit

' ########################################################
' กำหนดค่ารายการต่างๆให้กับ ComboBox
Sub InitComboBox()
' ########################################################
    
    ' เคลียร์ค่าข้อมูลของ ComboBox ออกให้หมด
    ComboBox1.Clear
    ' ค่า Index ตัวแรกในรายการของ ComboBox จะเริ่มต้นเท่ากับ 0
    ComboBox1.AddItem "กรุณาเลือกรายการ"    ' Index = 0
    ComboBox1.AddItem "รูปสี่เหลี่ยมจัตุรัส"      ' Index = 1
    ComboBox1.AddItem "รูปสี่เหลี่ยมผืนผ้า"      ' Index = 2
    ComboBox1.AddItem "รูปวงกลม"                 ' Index = 3
    ComboBox1.AddItem "รูปวงรี"                     ' Index = 4
    ComboBox1.AddItem "รูปสามเหลี่ยม"           ' Index = 5
    ComboBox1.AddItem "ภาพสัตว์ 2 ขา"          ' Index = 6
    ComboBox1.AddItem "ภาพสัตว์ 4 ขา"          ' Index = 7
    ComboBox1.AddItem "ไปยัง Slide ถัดไป"   ' Index = 8
    ' จะทำให้ ComboBox.ListCount = 9 (ตั้งแต่ 0 - 8 = 9 ค่า)
    
    ' กำหนดให้ไปที่ Index = 0 เพื่อแจ้งข้อความให้เลือก
    ComboBox1.ListIndex = 0
    
    ' เคลียร์ค่าข้อมูลการแสดงผลคำอธิบาย
    Label1.Caption = ""
    
    ' ซ่อน Control ทั้ง 2 ตัวเอาไว้ก่อน ... เพื่อให้ผู้เรียนได้เลือกรายการ
    Label1.Visible = False
    Image1.Visible = False

End Sub

' ########################################################
' เมื่อมีการเลือกค่าต่างๆที่อยู่ภายใน ComboBox ก็จะเกิดเหตุการณ์เปลี่ยนแปลงค่า (Change)
Private Sub ComboBox1_Change()
' ########################################################

' อ่านรายละเอียดต่างๆของ Shape Collection Object

    ' ลบพวกที่เป็น AutoShape ออกไป ไม่ให้แสดงผลค้างเอาไว้ เช่น รูปสี่เหลี่ยม วงกลม ... นี่แหละที่เรียกว่า Dynamic
    Call RemoveShape

    Image1.Visible = False
    Label1.Visible = True
    
    Select Case ComboBox1.ListIndex
    
        ' แสดงรูปสี่เหลี่ยมจัตุรัส
        Case 1
            With ActivePresentation.Slides(2)
                
                ' ####################################################
                ' Type คือ การกำหนดกำหนดเป็นรูปสี่เหลี่ยม (หรืออื่นๆ)
                ' Left คือ การวางตำแหน่ง Shape ทางด้านซ้ายของจอ
                ' Top คือ การวางตำแหน่ง Shape ทางด้านบนของจอ
                ' Width คือการกำหนดความกว้างของ Shape
                ' Height คือการกำหนดความสูงของ Shape
                ' ดังนั้นไม่ว่าจะเป็นวงกลม (Oval) หรือ สี่เหลี่ยม (Rectangle) ความต่างของ Shape
                ' ก็จะอยู่การกำหนดความกว้าง กับ ความสูงนั่นเอง
                ' ####################################################
                
                ' ####################################################
                ' ตัวอย่างของการทำ CAI ในลักษณะของ Dynamic โดยการแสดงภาพสี่เหลี่ยมไม่ให้ซ้ำขนาด
                    ' ทำให้เราสามารถนำไปสร้างโจทย์แบบฝึกหัดได้นั่นเอง ... พอมองเห็นภาพหรือยังครับ
                ' เริ่มต้นในการสุ่มตัวเลขก่อน
                Randomize
                Dim Axis As Integer
                ' สุ่มตัวเลข 1 - 4 ก็พอ เดี๋ยวภาพมันจะใหญ่เกินไป เพราะต้องไปคูณกับ 50 ซม. อีก (หน่วยวัด Metric)
                ' Width:=Axis * 50 และ Height:= Axis * 50
                Axis = Int(4 * Rnd) + 1
                ' ####################################################

                With .Shapes.AddShape( _
                    Type:=msoShapeRectangle, _
                    Left:=100, _
                    Top:=200, _
                    Width:=Axis * 50, _
                    Height:=Axis * 50 _
                    )
                    ' ตั้งชื่อให้ Shape เอาไว้เพื่ออ้างอิงตอนเขียนโค้ด VBA
                    .Name = "Sqaure"
                    ' เติมสีลงไปใน Shape
                    .Fill.Solid
                    ' กำหนดสีให้กับ Shape ตามการผสมสีเป็นเลขฐาน 10 (ค่าระหว่าง 0 - 255)
                    ' R=Red สีแดง, G = Green สีเขียว, B = Blue สีน้ำเงิน
                    .Fill.ForeColor.RGB = RGB(54, 100, 154)
                End With
            End With
            
            ' แสดงคำอธิบายของ Shape หรือ Image ... ประกอบการเรียน และ การสอนได้นั่นเอง
            ' vbCrLf คือ การขึ้นบรรทัดใหม่ เมื่อ Cr = Carriage Return และ Lf = Line Feed
            Label1.Caption = "คำอธิบาย" & vbCrLf & "การหาพื้นที่รูปสี่เหลี่ยมจัตุรัส" & vbCrLf
            Label1.Caption = Label1.Caption & "พ.ท.รูปสี่เหลี่ยมจัตุรัส = ด้าน x ด้าน" & vbCrLf
            Label1.Caption = Label1.Caption & "เมื่อด้านแต่ละด้าน มีค่า = " & Axis & " หน่วย." & vbCrLf
            Label1.Caption = Label1.Caption & "มีพื้นที่ = " & Axis * Axis & " หน่วย."
            ' ลักษณะของ Dynamic คือ มีการเปลี่ยนแปลงได้ตลอด
            ' ทำให้บทเรียนจะไม่ซ้ำซาก ผู้เรียนไม่ใช้วิธีท่องจำ ... ว่างๆผมจะเสริมให้อีกทีครับ ... เรื่องหมูๆ (ของผม)
            
        ' ที่เหลือส่วนอื่นๆ ก็เหมือนกันครับ ... อันนี้รูปสี่เหลี่ยมผืนผ้า
        Case 2
            With ActivePresentation.Slides(2)
                With .Shapes.AddShape( _
                    Type:=msoShapeRectangle, _
                    Left:=100, _
                    Top:=200, _
                    Width:=120, Height:=80 _
                    )
                    .Name = "Rectangle"
                    .Fill.Solid
                    .Fill.ForeColor.RGB = RGB(0, 100, 0)
                End With
            End With

            Label1.Caption = "คำอธิบาย" & vbCrLf & "การหาพื้นที่รูปสี่เหลี่ยมผืนผ้า" & vbCrLf
            Label1.Caption = Label1.Caption & "พ.ท.รูปสี่เหลี่ยม = กว้าง x ยาว" & vbCrLf
            Label1.Caption = Label1.Caption & "เช่น ... อะไรก็ว่าไป"

        ' รูปวงกลม
        Case 3
            With ActivePresentation.Slides(2)
                With .Shapes.AddShape( _
                    Type:=msoShapeOval, _
                    Left:=100, _
                    Top:=200, _
                    Width:=100, _
                    Height:=100 _
                    )
                    .Name = "Circle"
                    .Fill.Solid
                    .Fill.ForeColor.RGB = RGB(255, 100, 0)
                End With
            End With
            Label1.Caption = "คำอธิบาย" & vbCrLf & "นี่คือรูปวงกลม"
        
        ' รูปวงรี
        Case 4
            With ActivePresentation.Slides(2)
                With .Shapes.AddShape( _
                    Type:=msoShapeOval, _
                    Left:=100, _
                    Top:=200, _
                    Width:=100, _
                    Height:=60 _
                    )
                    .Name = "Oval"
                    .Fill.Solid
                    .Fill.ForeColor.RGB = RGB(255, 100, 154)
                End With
            End With
            Label1.Caption = "คำอธิบาย" & vbCrLf & "นี่คือรูปวงรี"

        ' รูปสามเหลี่ยม
        Case 5
            With ActivePresentation.Slides(2)
                With .Shapes.AddShape( _
                    Type:=msoShapeIsoscelesTriangle, _
                    Left:=100, _
                    Top:=200, _
                    Width:=100, _
                    Height:=100 _
                    )
                    .Name = "Circle"
                    .Fill.Solid
                    .Fill.ForeColor.RGB = RGB(154, 100, 154)
                End With
            End With
            Label1.Caption = "คำอธิบาย" & vbCrLf & "นี่คือรูปสามเหลี่ยม"
        
        ' แสดงรูปภาพ
        Case 6
            With ActivePresentation.Slides(2)
                With Image1
                    .Left = 100
                    .Top = 200
                    ' ภาพทะลุพื้นหลัง (เฉพาะนามสกุล GIF ส่วน PNG ใช้กับ Image Control ไม่ได้)
                    .BackStyle = fmBackStyleTransparent
                    ' ปรับภาพให้แสดงผลตามจริง (Stretch)
                    .PictureSizeMode = fmPictureSizeModeStretch
                    ' ไม่มีกรอบ
                    .BorderStyle = fmBorderStyleNone
                    ' กำหนดตำแหน่งของภาพมาแสดง คือ ตำแหน่งไฟล์ PPT ปัจจุบัน ตามด้วยโฟลเดอร์ images\ชื่อรูป
                    .Picture = LoadPicture(Application.ActivePresentation.Path & "\images\bird-01.gif")
                    ' ให้สามารถมองเห็นได้
                    .Visible = True

                End With
            End With
            
            Label1.Caption = "คำอธิบาย" & vbCrLf & "นี่คือภาพสัตว์ 2 ขา"

        ' แสดงรูปภาพ
        Case 7
            With ActivePresentation.Slides(2)
                With Image1
                    .Left = 100
                    .Top = 200
                    .BackStyle = fmBackStyleTransparent
                    .PictureSizeMode = fmPictureSizeModeStretch
                    .BorderStyle = fmBorderStyleNone
                    .Picture = LoadPicture(Application.ActivePresentation.Path & "\images\cow-01.gif")
                    .Visible = True
                End With
            End With
            
            Label1.Caption = "คำอธิบาย" & vbCrLf & "นี่คือภาพสัตว์ 4 ขา"
            
        ' ไปหน้าต่อไป
        Case 8
        
            Label1.Visible = False
            Image1.Visible = False
            ' แล้วสั่งให้ไปยัง Slide ที่ต้องการโดยกำหนดจากหมายเลขประจำ Slide (ตัวอย่างมี 3 Slide)
            ActivePresentation.SlideShowWindow.View.GotoSlide (3)
            ' หรือ สั่งผ่าน Next หากเป็น Slide ถัดไป
            'ActivePresentation.SlideShowWindow.View.Next

            
        Case Else
            Label1.Visible = False

    End Select

End Sub

' ########################################################
' โปรแกรมย่อยที่ใช้ในการลบพวก Shape ต่างๆ เช่น สี่เหลี่ยม วงกลม ออกไปจาก Slide
' เพื่อไม่ให้แสดงผลบน Slide ค้างเอาไว้ ... นี่ก็คือ Dynamic อีกเช่นกัน
' เห็นขีดความสามารถของ PowerPoint กันได้อย่างชัดเจนมั้ยครับ
Sub RemoveShape()
' ########################################################

    ' กำหนดตัวแปร Object แบบ Shape (รูปร่าง)
    Dim oSH As Shape
    ' ไว้นับจำนวนของ Object ที่มีอยู่บน Slide ปัจจุบันทุกตัว
    Dim X As Long
    
    ' นับ Object หรือ วัตถุทุกตัวที่อยู่ใน Slide ที่กำลังแสดงผล (ActivePresentation)
    For X = ActivePresentation.Slides.Count To 1 Step -1
        ' เลือกเฉพาะ Object ที่เป็น Shape เท่านั้น
        For Each oSH In ActivePresentation.Slides(X).Shapes
            
            ' หากทดสอบว่า Object ที่ตรวจพบเป็น Shape ก็ให้ลบออกไปจากหน้าจอ Slide ใน PowerPoint
            If oSH.Type = msoAutoShape Then oSH.Delete
        
        Next
    Next

End Sub

' จบการทำงาน ปิด PowerPoint
Private Sub CommandButton1_Click()
    ' อ้างอิงชื่อไฟล์
    With Application.Presentations("PowerPoint-ComboBox.ppt")
        ' สั่งบันทึก (Save) ก่อนออก
        .Saved = True
        .Close
    End With
    
End Sub

ลำดับขั้นตอนการทำงาน

VBA สำหรับ Slide3 ที่อยู่ในโปรแกรม PowerPoint

Option Explicit

' จบการทำงาน ปิด PowerPoint
Private Sub CommandButton1_Click()
    ' อ้างอิงชื่อไฟล์
    With Application.Presentations("PowerPoint-ComboBox.ppt")
        ' สั่งบันทึก (Save) ก่อนออก
        .Saved = True
        .Close
    End With
    
End Sub

Private Sub CommandButton2_Click()
    ' แล้วสั่งให้ไปยัง Slide ที่ต้องการโดยกำหนดจากหมายเลขประจำ Slide (ตัวอย่างมี 3 Slide)
    ' โดยให้ย้อนกลับไปหน้าก่อนนี้
    ActivePresentation.SlideShowWindow.View.GotoSlide (2)
End Sub
รอบหน้าผมจะนำเสนอผลงานการใช้โปรแกรม PowerPoint เชื่อมต่อกับระบบฐานข้อมูล Access ... คราวนี้ครู อาจารย์ ทั้งหลายที่เคยคิดว่า PowerPoint มันเก็บข้อมูลของผู้เรียน การทำข้อสอบต่างๆไม่ได้ (หรือมีแต่เขาว่ากันว่า ... เอิ๊กๆๆๆๆ) ... แล้วท่านจะได้เห็นผ่านหน้าเว็บไซต์แห่งนี้ เป็นครั้งแรกในประเทศไทยครับ โค้ดเสร็จเรียบร้อยหมดแล้ว เพราะผมลอกมาจาก VB6 ซึ่งเป็นโค้ดของผมเองทั้งหมดเลย 55555+ ... ใครอยากได้ ใครอยากเห็นก่อน ยกมือขึ้น
จี ทู จี เน็ต ดอต คอม - g2gNet Dot Com
เลขทะเบียนพาณิชย์อิเล็กทรอนิกส์ 0407314800231
CopyLeft © 2004 - 2099 g2gNet.Com All rights reserved.
Email: [email protected] หรือ โทร. 08-6862-6560