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
(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