Online Reference

Home

Microsoft Reference
Knowledge Developer Database Internet Resource Forum
VBA
Error Handling and Message Function
ดาวน์โหลดคู่มือ

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