สัญญาณเตือน ถือเป็นสิ่งสำคัญอย่างยิ่งที่จะทำให้เราสบายใจมากขึ้น เพราะหากรหัส VBA ที่กำลังทำงานอยู่นั้น มีหลายขั้นตอน หรือกำลังจะทำขั้นตอนที่สำคัญห้ามผิดพลาด ซึ่งก่อนที่จะเข้าสู่ขั้นตอนดังกล่าว ควรมีสัญญาณเตือนแสดงขึ้นบนจอ เพื่อบอกให้เราทราบว่า ที่ผ่านไปนั้นเป็นขั้นตอนใดที่ทำเสร็จไปแล้ว ขณะนี้กำลังจะทำขั้นตอนใดต่อไป หรือเมื่อพบว่า จากขั้นตอนที่ทำไปแล้วนั้น ทำให้สถานการณ์ต่างไปจากเดิม เราจะยอมให้รหัสทำงานต่อไปอีกหรือไม่
MsgBox Function
MsgBox(prompt[, buttons] [, title])
ตัวอย่างการใช้งาน
- MsgBox "Value is : " & [Source]
แสดงค่าในเซลล์ชื่อ Source
- MyVar = MsgBox("Value is : " & [Source], vbOKCancel)
If MyVar = vbOK Then [Target] = [Source]
แสดงค่าในเซลล์ชื่อ Source แล้วถ้ากดปุ่ม OK
จะส่งค่าจาก Source ไปเก็บไว้ที่ Target
สังเกตว่า หลัง MsgBox มีวงเล็บเพื่อทำงานแบบสูตร - ถ้าแก้ไขเพิ่มเติมรหัสบรรทัดแรกในข้อ 2 เป็น
MyVar = MsgBox("Value is : " & [Source], vbOKCancel
+ vbDefaultButton2, "Expert")
สังเกตว่า คราวนี้ปุ่ม Cancel เป็นปุ่มที่พร้อมใช้แทน และมีคำำว่า Expert แทน คำว่า Microsoft Excel ในส่วนที่เป็น Title ด้านบน - เราสามารถเลือกใช้ปุ่มได้หลายประเภท โดยใช้รหัสต่อไปนี้แทนลงไปในส่วนของ buttons
vbOKOnly
vbOKCancel
vbAbortRetryIgnore
vbYesNoCancel
vbYesNo
vbRetryCancel
vbCritical
vbQuestion
vbExclamation
vbInformation
- ในกรณีที่ใช้ปุ่มหลายปุ่ม ให้ใช้รหัสต่อไปนี้บวกต่อท้ายรหัสปุ่ม เพื่อเลือกให้เป็นปุ่มที่พร้อมใช้งานเมื่อกดปุ่ม Enter
vbDefaultButton1
vbDefaultButton2
vbDefaultButton3
InputBox Function
InputBox(prompt[, title] [, default])
ตัวอย่างการใช้งาน
[Source] = InputBox("Value is : ", "Expert", [Source])

InputBox แสดงค่าที่บันทึกไว้ในเซลล์ Source และเปิดให้บันทึกค่าใหม่แทนค่าเดิม
InputBox Method
นอกจากจะใช้ InputBox แบบที่เป็นสูตรแล้ว ยังมี InputBox แบบ Method อีกด้วย ซึ่งสามารถใช้เลือกบันทึกเป็นตัวเลข ตัวอักษร หรือสูตร โดยมีโครงสร้างดังนี้
InputBox(Prompt, Title, Default,,,,, Type)
ตัวอย่างการใช้งาน
[Source] = Application.InputBox("Value is : ", "Expert", [Source], , , , , 1)

- ต้องพิมพ์คำว่า Application. นำหน้า InputBox
- สังเกตว่า ตำแหน่งของปุ่ม OK Cancel จะวางไว้แนวนอน
- ค่าของ Type เพื่อควบคุมค่าที่ใช้ในการบันทึก
0A formula 1A number 2Text (a string) 4A logical value (True or False) 8A cell reference, as a Range object 16An error value, such as #N/A 64An array of values - ถ้าต้องการใช้ Type 2 อย่างพร้อมกัน ให้นำเลข Type มาบวกกัน เช่น ถ้าต้องการเปิดรับค่าที่เป็นตัวเลขหรือตัวอักษร ให้ใส่เลข 3 (=1+2)
รหัสอื่นๆที่เกี่ยวข้องกับสัญญาณเตือน
- Application.DisplayAlerts = False
Workbooks("BOOK1.XLS").Close
Application.DisplayAlerts = True
ยกเลิกการเตือนให้ save changes เมื่อปิดแฟ้ม
- Application.ScreenUpdating = False
....
Application.ScreenUpdating = True
ยกเลิกการปรับภาพที่แสดงการทำงานใดๆให้เห็นบนจอ
- Application.StatusBar = "Please be patient..."
Workbooks.Open filename:="LARGE.XLS"
Application.StatusBar = False
ในระหว่างที่กำลังเปิดแฟ้ม ให้แสดงข้อความให้เห็นบน Status Bar ด้านซ้ายล่างของจอ และเมื่อเปิดแฟ้มเสร็จแล้วให้ลบข้อความออก
