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
|