วันพุธที่ 27 สิงหาคม พ.ศ. 2557

Excel การสร้าง Popup Menu หลายๆอัน และมีภาพข้างหน้าเมนู

Excel การสร้าง Popup Menu หลายๆอัน และมีภาพข้างหน้าเมนู (Popup Menu with image) การสร้าง Popup Menu หรือที่เรียกว่าเมนูที่เกิดจากการคล... thumbnail 1 summary
Excel การสร้าง Popup Menu หลายๆอัน และมีภาพข้างหน้าเมนู

(Popup Menu with image)

การสร้าง Popup Menu หรือที่เรียกว่าเมนูที่เกิดจากการคลิกขวาบน Excel เราเคยสอนการสร้างมา 2 – 3 ครั้ง แล้ว คราวนี้ เราจะมาสอนวิธีการใส่รูปภาพประกอบข้างหน้าเมนูด้วย ซึ่งนับว่าเป็นสิ่งที่น่าเรียนรู้เป็นอย่างยิ่ง เพราะจะทำให้ popup menu สวยงามขึ้น และบ่งบอกถึงวัตถุประสงค์ได้เป็นอย่างดี

ในตัวอย่างนี้ นอกจากเราจะได้รู้เรื่องการสร้าง Popup Menu พร้อมกับการสั่งงานมันแล้ว เรายังจะได้รู้วิธีการเรียก Dialog ที่สำคัญๆต่างๆขึ้นมาใช้งานด้วย ซึ่งก็ได้แก่ DialogPatterns, DialogAlignment, DialogFormatFont, DialogBorder, DialogPatterns, DialogCellProtection, DialogFormatNumber

ขั้นตอนการสร้างโปรแกรมนี้บน Excel

1. เปิด Excel ขึ้นมา
 (Open Excel)

2. เลือกเซลล์ A1:A10 แล้วระบายสีแดงให้กับเซลล์
(Fill red color on cells A1:A10)

3. กด alt+F11 เพื่อไปยังหน้าจอเขียนโค้ด
(Press Alt+F11 for go to VBA area)

4. เพิ่ม Module 1 แล้วใส่โค้ดต่อไปนี้ลงไป
(insert module1 into project and insert this code below)

Sub CreateShortcut()

DeleteShortcut

Set myBar = CommandBars.Add _

(Name:="MyShortcut", Position:=msoBarPopup, Temporary:=True)



Set myItem = myBar.Controls.Add(Type:=msoControlButton)

With myItem

.Caption = "&Number Format..."

.OnAction = "ShowFormatNumber"

.FaceId = 1554

End With



Set myItem = myBar.Controls.Add(Type:=msoControlButton)

With myItem

.Caption = "&Alignment..."

.OnAction = "ShowFormatAlignment"

.FaceId = 217

End With



Set myItem = myBar.Controls.Add(Type:=msoControlButton)

With myItem

.Caption = "&Font..."

.OnAction = "ShowFormatFont"

.FaceId = 291

End With



Set myItem = myBar.Controls.Add(Type:=msoControlButton)

With myItem

.Caption = "&Borders..."

.OnAction = "ShowFormatBorder"

.FaceId = 149

.BeginGroup = True

End With



Set myItem = myBar.Controls.Add(Type:=msoControlButton)

With myItem

.Caption = "&Patterns..."

.OnAction = "ShowFormatPatterns"

.FaceId = 1550

End With



Set myItem = myBar.Controls.Add(Type:=msoControlButton)

With myItem

.Caption = "Pr&otection..."

.OnAction = "ShowFormatProtection"

.FaceId = 2654

End With

End Sub



Sub ShowFormatNumber()

Application.Dialogs(xlDialogFormatNumber).Show

End Sub



Sub ShowFormatAlignment()

Application.Dialogs(xlDialogAlignment).Show

End Sub



Sub ShowFormatFont()

Application.Dialogs(xlDialogFormatFont).Show

End Sub



Sub ShowFormatBorder()

Application.Dialogs(xlDialogBorder).Show

End Sub



Sub ShowFormatPatterns()

Application.Dialogs(xlDialogPatterns).Show

End Sub



Sub ShowFormatProtection()

Application.Dialogs(xlDialogCellProtection).Show

End Sub



Sub DeleteShortcut()

On Error Resume Next

CommandBars("MyShortcut").Delete

End Sub

5. คลิกที่ sheet 1 แล้วใส่โค้ดดังต่อไปนี้ลงไป
(double click sheet1 and insert code)



Private Sub Worksheet_BeforeRightClick(ByVal Target As Excel.Range, Cancel As Boolean)

If Union(Target.Range("A1"), Range("data")).Address = Range("data").Address Then

CommandBars("MyShortcut").ShowPopup

Cancel = True

End If

End Sub



6. ในส่วนของ Workbook ให้ใส่โค้ดต่อไปนี้ลงไป
(insert this code to workbook)




Private Sub Workbook_BeforeClose(Cancel As Boolean)

Call DeleteShortcut

End Sub



Private Sub Workbook_Open()

Call CreateShortcut

End Sub

7. กด Alt+F11 เพื่อกลับมาที่ Excel
(Press alt+f11 for back to Excel and test program)


Show Fonts


Show Alignment


Show Border



Show Protection


 Show Number