Font s :
Background :

วิธีสร้างสัญญาณเตือน...ภัย

สัญญาณเตือน ถือเป็นสิ่งสำคัญอย่างยิ่งที่จะทำให้เราสบายใจมากขึ้น เพราะหากรหัส VBA ที่กำลังทำงานอยู่นั้น มีหลายขั้นตอน หรือกำลังจะทำขั้นตอนที่สำคัญห้ามผิดพลาด ซึ่งก่อนที่จะเข้าสู่ขั้นตอนดังกล่าว ควรมีสัญญาณเตือนแสดงขึ้นบนจอ เพื่อบอกให้เราทราบว่า ที่ผ่านไปนั้นเป็นขั้นตอนใดที่ทำเสร็จไปแล้ว ขณะนี้กำลังจะทำขั้นตอนใดต่อไป หรือเมื่อพบว่า จากขั้นตอนที่ทำไปแล้วนั้น ทำให้สถานการณ์ต่างไปจากเดิม เราจะยอมให้รหัสทำงานต่อไปอีกหรือไม่

MsgBox Function

MsgBox(prompt[, buttons] [, title])

ตัวอย่างการใช้งาน

  1. MsgBox "Value is : " & [Source]
    แสดงค่าในเซลล์ชื่อ Source
    msgbox1

  2. MyVar = MsgBox("Value is : " & [Source], vbOKCancel)
    If MyVar = vbOK Then [Target] = [Source]
    msgbox2
    แสดงค่าในเซลล์ชื่อ Source แล้วถ้ากดปุ่ม OK
    จะส่งค่าจาก Source ไปเก็บไว้ที่ Target
    สังเกตว่า หลัง MsgBox มีวงเล็บเพื่อทำงานแบบสูตร

  3. ถ้าแก้ไขเพิ่มเติมรหัสบรรทัดแรกในข้อ 2 เป็น
    MyVar = MsgBox("Value is : " & [Source], vbOKCancel
    + vbDefaultButton2, "Expert")
    MsgBox3
    สังเกตว่า คราวนี้ปุ่ม Cancel เป็นปุ่มที่พร้อมใช้แทน และมีคำำว่า Expert แทน คำว่า Microsoft Excel ในส่วนที่เป็น Title ด้านบน

  4. เราสามารถเลือกใช้ปุ่มได้หลายประเภท โดยใช้รหัสต่อไปนี้แทนลงไปในส่วนของ buttons
    vbOKOnly
    vbOKCancel
    vbAbortRetryIgnore
    vbYesNoCancel
    vbYesNo
    vbRetryCancel
    vbCritical
    vbQuestion
    vbExclamation
    vbInformation
     
  5. ในกรณีที่ใช้ปุ่มหลายปุ่ม ให้ใช้รหัสต่อไปนี้บวกต่อท้ายรหัสปุ่ม เพื่อเลือกให้เป็นปุ่มที่พร้อมใช้งานเมื่อกดปุ่ม Enter
    vbDefaultButton1
    vbDefaultButton2
    vbDefaultButton3
InputBox Function

InputBox(prompt[, title] [, default])

ตัวอย่างการใช้งาน

[Source] = InputBox("Value is : ", "Expert", [Source])

inputbox

InputBox แสดงค่าที่บันทึกไว้ในเซลล์ Source และเปิดให้บันทึกค่าใหม่แทนค่าเดิม

InputBox Method

นอกจากจะใช้ InputBox แบบที่เป็นสูตรแล้ว ยังมี InputBox แบบ Method อีกด้วย ซึ่งสามารถใช้เลือกบันทึกเป็นตัวเลข ตัวอักษร หรือสูตร โดยมีโครงสร้างดังนี้

InputBox(Prompt, Title, Default,,,,, Type)

ตัวอย่างการใช้งาน

[Source] = Application.InputBox("Value is : ", "Expert", [Source], , , , , 1)

inputbox2

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

 

 

Categories

About this Entry

This page contains a single entry by สมเกียรติ ฟุ้งเกียรติ published on November 13, 2006 7:59 PM.

VBA กับการตัดสินใจ was the previous entry in this blog.

วิธีสั่งให้ VBA ทำงานทวนซ้ำหลายรอบ is the next entry in this blog.

Find recent content on the main index.

Font s :
Background :