MsgBox Function
VBA Function, สำหรับการแสดงข่าวสารใน dialog box และรอให้ผู้ใช้คลิกปุ่ม
และส่งค่าเป็นเลขจำนวนเต็ม (Integer) เพื่อระบุปุ่มที่ผู้ใช้คลิก
ไวยากรณ์
MsgBox(prompt[,button],title] [,, helpfile,context] )
ฟังก์ชัน MsgBox มีไวยากรณ์ของส่วน คือ
ส่วน |
รายละเอียด |
prompt |
บังคับ, เป็น expression ข้อความแสดงข่าวสารใน dialog
box ความยาวสูงสุดของ prompt ประมาณ 1,024 ตัวอักษร ขึ้นกับความกว้างของตัวอักษรที่ใช้
ถ้า prompt ยาวกว่าหนึ่งบรรทัด ให้แบ่งบรรทัดโดยใช้ตัวอักษร carriage
return (Chr(13)) ตัวอักษร linefeed (Chr(10)) หรือรวมตัวอักษร carriage
return และ ตัวอักษร linefeed (Chr(13) & Chr(10)) ระหว่างแต่ละบรรทัด |
button |
ไม่บังคับ, เป็น expression ตัวเลขที่เป็นผลรวมของค่าที่ระบุจำนวนและประเภทของปุ่มที่แสดง, รูปแบบการใช้ของ icon, เอกลักษณ์ของปุ่มเริ่มต้น และ modal ของข่าวสาร ถ้าไม่กำหนด ค่าเริ่มต้นของ buttons คือ 0 |
title |
ไม่บังคับ, เป็น expression ข้อความแสดงชื่อที่แถบไตเติล (Title bar) ของ dialog box ถ้าไม่กำหนด title จะใช้โปรแกรมประยุกต์เป็นชื่อที่แถบไตเติล |
helpfile |
ไม่บังคับ, เป็น expression ข้อความแสดงไฟล์ Help file ที่ให้คำแนะนำและการช่วยเหลือสำหรับ dialog box ถ้ากำหนด helpfile จะต้องกำหนด context ด้วย |
context |
ไม่บังคับ, เป็น expression ข้อความแสดงหมายเลข Help context ที่กำหนดตามหัวข้อการช่วยเหลือโดยผู้เขียน Help ถ้ากำหนด context จะต้องกำหนด helpfile ด้วย |
การตั้งค่า
อากิวเมนต์ buttons กำหนดค่าได้เป็น
ค่าคงที่ |
ค่า |
รายละเอียด |
VbOKOnly |
0 |
แสดงเฉพาะปุ่ม OK เท่านั้น |
VbOKCancel |
1 |
แสดงปุ่ม OK และ Cancel |
VbAbortRetryIgnore |
2 |
แสดงปุ่ม Abort, Retry, และ Ignore |
VbYesNoCancel |
3 |
แสดงปุ่ม Yes, No, และ Cancel |
VbYesNo |
4 |
แสดงปุ่ม Yes และ No |
VbRetryCancel |
5 |
แสดงปุ่ม Retry and Cancel buttons |
VbCritical |
16 |
แสดง icon ของข่าวสารวิกฤติ (Critical Message) |
vbQuestion |
32 |
แสดง icon การเตือนของคิวรี่ (Warning Query) |
vbExclamation |
48 |
แสดง icon ของการเตือน (Warning Message) |
vbInformation |
64 |
แสดง icon ของสารสนเทศ (Information Message) |
vbDefaultButton1 |
0 |
ปุ่มแรกเป็นปุ่มเริ่มต้น |
vbDefaultButton2 |
256 |
ปุ่มที่สองเป็นปุ่มเริ่มต้น |
vbDefaultButton3 |
512 |
ปุ่มที่สามเป็นปุ่มเริ่มต้น |
vbDefaultButton4 |
768 |
ปุ่มที่สี่เป็นปุ่มเริ่มต้น |
vbApplicationModal |
0 |
modal ของการประยุกต์ที่ผู้ต้องตอบสนองกับ message box ก่อนที่จะทำงานต่อไปในโปรแกรมประยุกต์ปัจจุบัน |
vbSystemModal |
4096 |
modal ของระบบที่การประยุกต์ทั้งหมดจะถูกหยุดจนกว่าผู้ใช้ตอบสนองกับ message box |
vbMsgBoxHelpButton |
16384 |
เพิ่มปุ่ม Help ใน message box |
vbMsgBoxSetForeground |
65536 |
กำหนด window ของ message box window เป็น foreground window |
vbMsgBoxRtlReading |
1048576 |
กำหนดให้อ่านจากขวาไปซ้ายตามระบบ Hebrew และ Arabic |
กลุ่มแรก (0-5) อธิบายหมายเลขและประเภทของปุ่มที่จะแสดงใน dialog box, กลุ่มที่
2 (16, 32, 48, 64) อธิบายรูปแบบของ icon, กลุ่มที่ 3 (0, 256, 512) หาปุ่มเริ่มต้น
และกลุ่มที่ 4 (0, 4096) หา modal ของ message box
หมายเหตุ ค่าคงที่เหล่านี้กำหนดได้โดย Visual Basic for Application
(VBA) ทำให้สามารถใช้ในการเขียนคำสั่งแทนที่การกำหนดค่า
ค่าส่งออก
ค่าคงที่ |
ค่า |
รายละเอียด |
vbOK |
1 |
OK |
vbCancel |
2 |
Cancel |
vbAbort |
3 |
Abort |
vbRetry |
4 |
Retry |
vbIgnore |
5 |
Ignore |
vbYes |
6 |
Yes |
vbNo |
7 |
No |
ลักษณะการประยุกต์
เมื่อมีการกำหนดอากิวเมนต์ helpfile และ context ผู้ใช้สามารถกดปุ่ม F1
เพื่อดูหัวข้อการช่วยเหลือที่ตรงกับ context ในบางโปรแกรมประยุกต์ เช่น Microsoft
Excel จะเพิ่มปุ่ม Help ให้โดยอัตโนมัติใน dialog box
ถ้า dialog box แสดงปุ่ม Cancel การกดปุ่ม ESC จะมีผลเช่นเดียวกับการคลิกปุ่ม
Cancel ถ้า dialog box มีปุ่ม Help จะมี context-sensitive Help ให้สำหรับ
dialog box แต่จะไม่มีค่าออกมาจนกว่ามีการคลิกปุ่มใดปุ่มหนึ่งบน dialog box
หมายเหตุ การกำหนดอากิวเมนต์นอกเหนือจากอากิวเมนต์แรกแล้ว ต้องใช้ฟังก์ชัน
MsgBox เป็น expression การไม่กำหนดบางตำแหน่งของอากิวเมนต์ต้องใช้เครื่องหมายจุลภาค
(,) ในการข้ามตำแหน่งนั้น
ดูเพิ่มเติม
ฟังก์ชัน InputBox, MsgBox action
วิธีการประยุกต์ใน Access
ฟังก์ชัน MsgBox สามารถใช้ใน Microsoft Access ในการสร้างรูปแบบของข่าวสารความผิดพลาดคล้ายกับข่าวสารความผิดพลาดแบบ
built-in ของ Microsoft Access
ตัวอย่างต่อไปนี้แสดงรูปแบบของ dialog box ที่เป็นข้อความแบบแบ่งส่วน ส่วนแรกเป็นข้อความเป็นหัวเรื่องตัวหนา
ส่วนที่สองเป็นตัวอักษรธรรมดาใต้หัวเรื่อง และส่วนที่สามเป็นตัวอักษรธรรมดาแสดงคำตอบของหัวเรื่อง
ตามตัวอย่างฟังก์ชัน
MsgBox "Wrong button!" & chr(13) & "This button
doesn't work." & chr(13) _
& "Try another.", vbOKOnly + vbExclamation
การแบ่งส่วนสามารถใช้เครื่องหมาย (@) แต่ใน Acc9TBD ฟังก์ชัน MsgBox ไม่ยินยอมให้ใช้เครื่องหมาย
(@) ในการแบ่งส่วน
หมายเหตุ การแสดง message box โดยไม่มีไอคอน ใน Microsoft Access ทำได้อย่างง่ายๆ
โดยการไม่กำหนดค่าคงที่ สำหรับ ไอคอน หรือให้ค่าเป็น 0 สำหรับอากิวเมนต์
buttons ตามตัวอย่างนี้
MsgBox "No icons included.", 0
วิธีการประยุกต์ใน Excel
ใน Microsoft Excel ข้อความในอากิวเมนต์ prompt เก็บข้อความได้ไม่เกิน 256
ตัวอักษร
ตัวอย่าง
ตัวอย่างการใช้ฟังก์ชัน MsgBox ในการแสดงข่าวสารความผิดพลาดวิกฤติ (Critical-error
message) ใน dialog box ที่มีปุ่ม Yes และ No โดยปุ่ม No กำหนดเป็นปุ่มเริ่มต้น
ค่าที่ส่งออกมาโดยฟังก์ชัน MsgBox ขึ้นกับปุ่มที่เลือกโดยผู้ใช้ ตามตัวอย่างสมมติให้ไฟล์
DEMO.HLP เป็นไฟล์ช่วยเหลือ (Help file) ที่เก็บหัวข้อด้วยหมายเลข Help context
เท่ากับ 1000
Dim Msg, Style, Title, Help, Ctxt, Response, MyString
' กำหนดข่าวสาร
Msg = "Do you want to continue? "
' กำหนดปุ่ม
Style = vbYesNo + vbCritical + vbDefaultButton2
' กำหนดแถบไตเติล
Title = "MsgBox Demonstration"
' กำหนด Help file.
Help = "DEMO.HLP"
' กำหนด topic context
Ctxt = 1000
Response = MsgBox(Msg, Style, Title, Help, Ctxt) ' แสดงข่าวสาร
' ผู้ใช้เลือก Yes
If Response = vbYes Then
' เตรียมการทำงาน
MyString = "Yes"
Else ' ผู้ใช้เลือก No
' เตรียมการทำงาน
MyString = "No"
End If
ตัวอย่างการประยุกต์ใน Access
ตัวอย่างการใช้ฟังก์ชัน MsgBox ในการสร้างรูปแบบของข่าวสารใน Microsoft
Access หมายเหตุ ใช้เครื่องหมาย (@) ในการแบ่งส่วน
Sub CustomMessage()
Dim strMsg As String, strInput As String
' กำหนดข้อความเริ่มต้น
strMsg = "Number outside range.@You entered a number
that is "
& "less than 1 or greater than 10.@Press
OK to enter the number again."
' Prompt สำหรับผู้ใช้ป้อนค่า
strInput = InputBox("Enter a number between 1 and 10.")
' การหาค่า ถ้าผู้ใช้เลือก "Cancel"
If strInput <> "" Then
' ทดสอบค่าที่ป้อนของผู้ใช้
Do While strInput < 0 Or strInput > 10
If MsgBox(strMsg, vbOKCancel, "Error!")
= vbOK Then
strInput = InputBox("Enter
a number between 1 and 10.")
Else
Exit Sub
End If
Loop
' แสดงว่าผุ้ใช้ป้อนค่าถูกต้อง
MsgBox "You entered the number " &
strInput & "."
Else
Exit Sub
End If
End Sub
|