Online Reference

Home

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

Type Conversion Function

VBA Function, แต่ละฟังก์ชันใช้ในการแปลงค่าให้เป็นประเภทข้อมูลที่ต้องการ

ไวยากรณ์

CByte(expression )
CCur(expression )
CDate(expression )
CDbl(expression )
CDec(expression )
CInt(expression )
CLng(expression )
CSng(expression )
CStr(expression )
CVar(expression )

อากิวเมนต์ expression ต้องเป็น expression ของข้อความหรือค่าตัวเลข

ประเภทข้อมูลที่ส่งออก

การหาประเภทข้อมูลที่ส่งออกมาโดยแต่ละฟังก์ชัน

ฟังก์ชัน ประเภทข้อมูลที่ส่งออก ช่วงของอากิวเมนต์ Expression
CBool Boolean expression ที่เป็นข้อความหรือตัวเลขที่มีจริง
CByte Byte 0 to 255
CCur Currency -922,337,203,685,477.5808 ถึง 922,337,203,685,477.5807
CDate Date expression ที่เป็นวันที่ที่มีจริง
CDbl Double ค่าลบ -1.79769313486231E308 ถึง -4.94065645841247E-324
ค่าบวก 4.94065645841247E-324 ถึง 1.79769313486232E308
CDec Decimal รูปแบบไม่มีทศนิยม +/-79,228,162,514,264,337,593,543,950,335
รูปแบบทศนิยม 28 ตำแหน่ง +/-7.9228162514264337593543950335
ค่าน้อยที่สุดที่ไม่เป็นศูนย์ คือ 0.0000000000000000000000000001
CInt Integer จำนวนเต็ม -32,768 to 32,767 โดยปรับค่าทศนิยม
CLng Long จำนวนเต็มแบบ Long -2,147,483,648 to 2,147,483,647 โดยปรับค่าทศนิยม
CSng Single ค่าลบ -3.402823E38 to -1.401298E-45
ค่าบวก 1.401298E-45 to 3.402823E38
CStr String ค่าที่ส่งออกขึ้นกับอากิวเมนต์ของ expression
CVar Variant สำหรับตัวเลข เหมือนกับประเภทข้อมูล Double
สำหรับค่าที่ไม่ใช่ตัวเลขเหมือนกับประเภทข้อมูล String

ลักษณะการประยุกต์

ถ้า expression ส่งค่าไปยังฟังก์ชันที่นอกจากช่วงของประเภทข้อมูลที่จะแปลงค่า จะปรากฏค่าความผิดพลาด

โดยทั่วไปแล้วสามารถเขียนคำสั่งโดยใช้ฟังก์ชันแปลงประเภทข้อมูล เพื่อแสดงผลลัพธ์ ในรูปแบบของประเภทข้อมูลที่เจาะจงแทนที่การใช้ประเภทข้อมูลตามค่าเริ่มต้น เช่น การใช้ฟังก์ชัน CCur เพื่อบังคับให้เป็นค่าทางการเงินแทนที่ตัวเลขจำนวนเต็มแบบ Single, หรือ Double

ในการใช้ฟังก์ชันแปลงประเภทข้อมูลแทนที่ค่าของฟังก์ชัน Val ใช้รูปแบบ international ในการระวังการแปลงประเภทข้อมูล เช่น ถ้าใช้ฟังก์ชัน CCur ความแตกต่างของเครื่องจุดทศนิยม, เครื่องหมายแบ่งหลักพัน และสัญลักษณ์ทางการเงิน จะเป็นไปตามตามการตั้งค่าของเครื่องคอมพิวเตอร์ที่ใช้

เมื่อด้านส่วนของค่าตัวเลขมีค่าเป็น 0.5 พอดี ฟังก์ชัน CInt และ CLng จะปรับค่าขึ้นเป็นเลขคู่ที่ใกล้ที่สุด เช่น 0.5 ปรับเป็น 0, 1.5 ปรับเป็น 2 ฟังก์ชัน CInt และ CLng แตกต่างจากฟังก์ชัน Fix และ Int ซึ่งใช้การตัดทศนิยมออก และค่าที่ส่งออกของฟังก์ชัน Fix และ Int เป็นประเภทข้อมูลเดิม

การใช้ฟังก์ชัน IsDate ในการหาค่า ถ้า date สามารถแปลงเป็น วันที่หรือ เวลา ส่วนฟังก์ชัน CDate จะกำหนดเป็นรูปแบบ date และ time ให้ตัวเลขที่อยู่ในช่วงพยัญชนะของ Date โดยแปลงค่าตัวเลขด้านจำนวนเต็มเป็นวันที่ และด้านส่วนเป็นเวลา ซึ่งเวลาจะเริ่มจากเที่ยงคืน

ฟังก์ชัน CDate จะให้รูปแบบ date ตามการตั้งค่าของเครื่องคอมพิวเตอร์ ลำดับวันที่ เดือน และปีที่ถูกต้องจะไม่สามารถหาได้ถ้าเป็นรูปแบบอื่นซึ่งระบบวันที่ไม่รับรู้ นอกจากนี้รูปแบบ Long date ไม่เป็นที่รับรู้ถ้าเก็บค่าเป็นข้อความแบบ day-of-the-week

ฟังก์ชัน CVDate ใช้สำหรับทำงานกับภาษา Visual Basic เวอร์ชันก่อน ไวยากรณ์ของฟังก์ชัน CVDate เหมือนกับฟังก์ชัน CDate แต่ ฟังก์ชัน CVDate ส่งค่าออกเป็นประเภทข้อมูล Variant ที่มีประเภทย่อยเป็น Date แทนที่เป็นประเภทข้อมูล Date โดยตรง เพราะประเภทข้อมูล Date โดยตรงไม่มีส่วนประกอบที่ฟังก์ชัน CVDate ต้องการ ผลอย่างเดียวกันนี้สามารถแปลง expression เป็น Date แล้วจึงกำหนดเป็นประเภทข้อมูล Variant โดยเท็คนิคนี้ใช้ในการแปลงประเภทข้อมูลอื่นๆให้เป็นประเภทข้อมูลย่อยของ Variant

ตัวอย่าง

ฟังก์ชัน CBool

ตัวอย่างการใช้ฟังก์ชัน CBool ในการแปลงค่า expression เป็น Boolean โดยค่าที่ไม่ใช่ 0 ฟังก์ชัน CBool จะส่งค่าเป็น True ค่าอื่นๆส่งค่าเป็น False

Dim A, B, Check

' Initial ตัวแปร
A = 5: B = 5
' Check มีค่าเป็น True
Check = CBool(A = B)

' กำหนด variable.
A = 0
' Check มีค่าเป็น False
Check = CBool(A)

ฟังก์ชัน CByte

ตัวอย่างการใช้ฟังก์ชัน CByte ในการแปลงค่า expression เป็น Byte

Dim MyDouble, MyByte

' MyDouble มีประเภทข้อมูลเป็น Double.
MyDouble = 125.5678
' MyByte มีค่าเป็น 126
MyByte = CByte(MyDouble)

ฟังก์ชัน CCur

ตัวอย่างการใช้ฟังก์ชัน CCur ในการแปลงค่า expression เป็น Currency.

Dim MyDouble, MyCurr

' MyDouble is a Double.
MyDouble = 543.214588
' ผลลัพธ์ของ MyDouble * 2 = (1086.429176)
' ได้ผลลัพธ์ค่าการเงิน Currency (1086.4292)
MyCurr = CCur(MyDouble * 2)

ฟังก์ชัน CDate

ตัวอย่างการใช้ฟังก์ชัน CDate ในการแปลงค่า expression เป็น Date โดยทั่วไปไม่แนะนำให้การเขียนคำสั่งแบบ hard-coding ของ dates and times เป็นข้อความ (string) แต่ให้ใช้รูปแบบของ date และ time เช่น #2/12/1969# and #4:45:23 PM#

Dim MyDate, MyShortDate, MyTime, MyShortTime

' กำหนดวันที่
MyDate = "February 12, 1969"
' แปลงเป็นประเภทข้อมูล Date
MyShortDate = CDate(MyDate)
' กำหนดเวลา
MyTime = "4:35:47 PM"
' แปลงเป็นประเภทข้อมูล Date
MyShortTime = CDate(MyTime)

ฟังก์ชัน CDbl

ตัวอย่างการใช้ฟังก์ชัน CDbl ในการแปลงค่า expression เป็น Double

Dim MyCurr, MyDouble

' MyCurr เป็น Currency
MyCurr = CCur(234.456784)
' แปลงผลลัพธ์เป็น Double
MyDouble = CDbl(MyCurr * 8.2 * 0.01)

ฟังก์ชัน CDec

ตัวอย่างการใช้ฟังก์ชัน CDec ในการแปลงค่า expression เป็น Decimal

Dim MyDecimal, MyCurr

' MyCurr เป็น Currency
MyCurr = 10000000.0587
' แปลงผลลัพธ์เป็น Decimal
MyDecimal = CDec(MyCurr)

ฟังก์ชัน CInt

ตัวอย่างการใช้ฟังก์ชัน CInt ในการแปลงค่า expression เป็น Integer.

Dim MyDouble, MyInt

' MyDouble เป็น Double
MyDouble = 2345.5678
' MyInt เก็บค่า 2346
MyInt = CInt(MyDouble)

ฟังก์ชัน CLng

ตัวอย่างการใช้ฟังก์ชัน CLng ในการแปลงค่า expression เป็น Long.

Dim MyVal1, MyVal2, MyLong1, MyLong2

' MyVal1, MyVal2 เป็น Double
MyVal1 = 25427.45: MyVal2 = 25427.55
' MyLong1 เก็บค่า 25427
MyLong1 = CLng(MyVal1)
' MyLong2 เก็บค่า 25428
MyLong2 = CLng(MyVal2)

ฟังก์ชัน CSng

ตัวอย่างการใช้ฟังก์ชัน CSng ในการแปลงค่า expression เป็น Single.

Dim MyDouble1, MyDouble2, MySingle1, MySingle2

'MyDouble1,MyDouble2 เป็น Double
MyDouble1 = 75.3421115: MyDouble2 = 75.3421555
' MySingle1 เก็บค่า 75.34211
MySingle1 = CSng(MyDouble1)
' MySingle2 เก็บค่า 75.34216
MySingle2 = CSng(MyDouble2)

ฟังก์ชัน CStr

ตัวอย่างการใช้ฟังก์ชัน CStr ในการแปลงค่า expression เป็น String.

Dim MyDouble, MyString

' MyDouble เป็น Double
MyDouble = 437.324
' MyString เก็บค่า "437.324"
MyString = CStr(MyDouble)

ฟังก์ชัน CVar

ตัวอย่างการใช้ฟังก์ชัน CVar ในการแปลงค่า expression เป็น Variant.

Dim MyInt, MyVar

' MyInt เป็น Integer
MyInt = 4534
' MyVar เก็บค่าเป็น string = 4534000
MyVar = CVar(MyInt & "000")