1. "&" แทนที่ "+"
2. การตั้งชื่อตัวแปรควรคำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ คำสั่งควรมีการจัดระเบียบอย่างดี และการบำรุงรักษาซอร์สโค้ดควรทำ
3. โปรดพัฒนานิสัยที่ดีของ "แบบแผนการตั้งชื่อวัตถุ" ดังต่อไปนี้
4. ในกรณีที่มีเงื่อนไขการเลือกอย่างง่าย ให้ใช้ฟังก์ชัน IIf()
5. ลองใช้ Debug.Print สำหรับการดีบัก
6. เมื่อแก้ไขคุณสมบัติของวัตถุซ้ำๆ ให้ลองใช้ With....End With
7. ลองใช้ไอคอนข้อความใน MsgBox เพื่อให้โปรแกรมมีมาตรฐานมากขึ้น 8. ใช้การแจงนับเมื่อเป็นไปได้
1. "&" แทนที่ "+"
ในภาษาโปรแกรมของหลายๆ คน "+" ใช้เพื่อเชื่อมต่อสตริง ซึ่งอาจนำไปสู่ความกำกวมได้ง่าย แนวปฏิบัติที่ดีคือการใช้ "&" เพื่อเชื่อมสตริงเข้าด้วยกัน
ไม่ถูกต้อง:
Dim sMessage เป็นสตริง
ข้อความ = "1" + "2"
ถูกต้อง:
Dim sMessage เป็นสตริง
ข้อความ = "1" & "2"
หมายเหตุ: มีช่องว่างหลัง "&"
2. การตั้งชื่อตัวแปรควรคำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ คำสั่งควรมีการจัดระเบียบอย่างดี และการบำรุงรักษาซอร์สโค้ดควรทำ
มาเปรียบเทียบโค้ดสองชิ้นต่อไปนี้:
อ่านโค้ดยาก:
หรี่ SNAME เป็นสตริง
Dim NTURN เป็นจำนวนเต็ม
ถ้า NTURN = 0 แล้ว
ถ้า SNAME = "vbeden" แล้ว
ทำในขณะที่ NTURN < 4
นเทิร์น = นเทิร์น + 1
วนซ้ำ
สิ้นสุดถ้า
สิ้นสุดถ้า
รหัสที่อ่านง่าย:
Dim sName เป็นสตริง
Dim nTurn เป็นจำนวนเต็ม
ถ้า nTurn = 0 แล้ว
ถ้า sName = "vbeden" แล้ว
ทำในขณะที่ nTurn < 4
nเทิร์น = nเทิร์น + 1
วนซ้ำ
สิ้นสุดถ้า
สิ้นสุดถ้า
[กลับสู่ดัชนี]
3. โปรดพัฒนานิสัยที่ดีของ "แบบแผนการตั้งชื่อวัตถุ" ดังต่อไปนี้
คำนำหน้าการควบคุมที่แนะนำ
ตัวอย่างคำนำหน้าประเภทการควบคุม
แผง 3D pnl pnlGroup
ADO ข้อมูล adoBiblio
ปุ่มเคลื่อนไหว ani aniMailBox
กล่องกาเครื่องหมาย chk chkReadOnly
กล่องคำสั่งผสม กล่องรายการแบบหล่นลง cbo cboEnglish
ปุ่มคำสั่ง cmd cmdExit
กล่องโต้ตอบทั่วไป dlg dlgFileOpen
การสื่อสาร คอม comFax
การควบคุม (ใช้ในขั้นตอนเมื่อไม่ทราบประเภทเฉพาะ) ctr ctrCurrent
ข้อมูล datBiblio
กล่องคำสั่งผสมที่ผูกกับข้อมูลdbcbo dbcboLanguage
ตารางที่ผูกกับข้อมูล dbgrd dbgrdQueryResult
กล่องรายการที่ถูกผูกไว้กับข้อมูลdblst dblstJobType
คำสั่งผสมข้อมูล dbc dbcAuthor
ตารางข้อมูล dgd dgdTitles
รายการข้อมูล dbl dblPublisher
ตัวทวนข้อมูล drp drpLocation
ตัวเลือกวันที่ dtp dtpเผยแพร่แล้ว
กล่องรายการไดเรกทอรี dir dirSource
กล่องรายการไดรฟ์ drv drvTarget
กล่องรายการไฟล์ fil filSource
แถบเลื่อนแบบแบน fsb fsbMove
แบบฟอร์มจาก frmEntry
กรอบ fra ภาษา
Gauge gau gauสถานะ
GraphgragraRevenue
ตาราง grd grdPrices
flexgrid flex flexOrders แบบลำดับชั้น
แถบเลื่อนแนวนอน hsb hsbVolume
รูปภาพ img img ไอคอน
คำสั่งผสมรูปภาพ imgcbo imgcboProduct
ImageList เป็น ilsAllIcons
ป้ายกำกับ lbl lblHelpMessage
กล่องกาเครื่องหมายน้ำหนักเบา lwchk lwchkArchive
กล่องคอมโบน้ำหนักเบา lwcbo lwcboGerman
ปุ่มคำสั่งน้ำหนักเบา lwcmd lwcmdRemove
กรอบน้ำหนักเบา lwfra lwfraSaveOptions
แถบเลื่อนแนวนอนน้ำหนักเบา lwhsb lwhsbVolume
กล่องรายการน้ำหนักเบาlwlst lwlstCostCenters
ปุ่มตัวเลือกน้ำหนักเบา lwopt lwoptIncomeLevel
กล่องข้อความน้ำหนักเบา lwtxt lwoptStreet
แถบเลื่อนแนวตั้งน้ำหนักเบา lwvsb lwvsbYear
ไลน์ ลินลินแนวตั้ง
กล่องรายการ lst lstPolicyCodes
ListView lvw lvwหัวข้อ
ข้อความ MAPI mpm mpmSentMessage
เซสชัน MAPI mps mpsSession
MCI mci mciวิดีโอ
เมนู mnu mnuFileOpen
มุมมองเดือน mvw mvwPeriod
MS Chart ch chSalesbyRegion
ข้อความตาราง MS Flex msg msgClients
MS Tab mst mstFirst
คอนเทนเนอร์ OLE ole oleWorksheet
ปุ่มตัวเลือก เลือก optGender
กล่องรูปภาพ picVGA
คลิปรูปภาพ clp clpToolbar
ProgressBar prg prgLoadFile
ข้อมูลระยะไกล rdTitles
RichTextBox rtf rtfReport
รูปร่าง shp shpCircle
สไลเดอร์ sld sldScale
หมุน spn spnPages
StatusBar sta staDateTime
SysInfo sys sysMonitor
TabStrip แท็บ tabOptions
กล่องข้อความ txt txtLastName
ตัวจับเวลา tmr tmrAlarm
แถบเครื่องมือ tlb tlbActions
TreeView tre treOrganization
ขึ้นลง อัปเดต ทิศทาง
แถบเลื่อนแนวตั้ง vsb vsbRate
-------------------------------------------------- -------------------------------------------------- ----------------------------------
คำนำหน้าที่แนะนำสำหรับ Data Access Objects (DAO)
ใช้คำนำหน้าต่อไปนี้เพื่อระบุออบเจ็กต์การเข้าถึงข้อมูล
ตัวอย่างคำนำหน้าวัตถุฐานข้อมูล
ConconReports คอนเทนเนอร์
ฐานข้อมูล db dbAccounts
DBEngine dbe dbeJet
เอกสาร doc docSalesReport
ฟิลด์ fld fldAddress
กลุ่ม grp grpFinance
ดัชนี ix idxAge
พารามิเตอร์ prm prmJobCode
QueryDef qry qrySalesByRegion
ชุดระเบียน rec recForecast
ความสัมพันธ์สัมพันธ์สัมพันธ์ฝ่ายพนักงาน
TableDef tbd tbdลูกค้า
ผู้ใช้ usr usrใหม่
พื้นที่ทำงาน wsp wspMine
-------------------------------------------------- -------------------------------------------------- ----------------------------------
แอปพลิเคชันมักใช้ตัวควบคุมเมนูจำนวนมาก และการมีชุดแบบแผนการตั้งชื่อเฉพาะสำหรับตัวควบคุมเหล่านี้ก็มีประโยชน์ นอกเหนือจากแท็ก "mnu" เริ่มต้นแล้ว ควรขยายคำนำหน้าของตัวควบคุมเมนู: เพิ่มคำนำหน้าเพิ่มเติมสำหรับการซ้อนแต่ละระดับ โดยวางชื่อเมนูสุดท้ายไว้ที่ส่วนท้ายของสตริงชื่อ ตารางด้านล่างแสดงตัวอย่างบางส่วน
คำนำหน้าเมนูแนะนำ
ชื่อเมนูลำดับชื่อตัวจัดการเมนู
เปิดไฟล์ mnuFileOpen
ไฟล์ส่งอีเมล mnuFileSendEmail
ไฟล์ส่งแฟกซ์ mnuFileSendFax
จัดรูปแบบอักขระ mnuFormatCharacter
สารบัญวิธีใช้ mnuHelpContents
เมื่อคุณใช้หลักการตั้งชื่อนี้ สมาชิกทั้งหมดของกลุ่มเมนูเฉพาะจะถูกแสดงรายการทีละรายการในหน้าต่างคุณสมบัติ Visual Basic นอกจากนี้ ชื่อการควบคุมเมนูยังระบุรายการเมนูที่เกี่ยวข้องได้อย่างชัดเจน
เลือกคำนำหน้าสำหรับการควบคุมอื่นๆ
การควบคุมที่ไม่ได้ระบุไว้ข้างต้นควรได้รับการกำหนดมาตรฐานด้วยคำนำหน้าสองหรือสามอักขระที่ไม่ซ้ำกันเพื่อความสอดคล้อง ใช้คำนำหน้ายาวเกินสามอักขระเมื่อจำเป็นต้องมีการชี้แจงเท่านั้น
แบบแผนการตั้งชื่อคงที่และตัวแปร
นอกจากวัตถุแล้ว ค่าคงที่และตัวแปรยังต้องมีรูปแบบการตั้งชื่อที่มีรูปแบบที่ดีอีกด้วย ส่วนนี้แสดงรายการแบบแผนที่แนะนำสำหรับค่าคงที่และตัวแปรที่ Visual Basic รองรับ และอภิปรายประเด็นในการระบุประเภทและช่วงข้อมูล
ควรกำหนดตัวแปรในขอบเขตที่เล็กที่สุดเท่าที่จะเป็นไปได้เสมอ ตัวแปรส่วนกลาง (สาธารณะ) สามารถนำไปสู่โครงสร้างสถานะที่ซับซ้อนอย่างยิ่ง และทำให้ตรรกะของแอปพลิเคชันเข้าใจได้ยากมาก ตัวแปรร่วมยังทำให้การใช้โค้ดซ้ำและการบำรุงรักษายากขึ้น
ตัวแปรใน Visual Basic สามารถมีขอบเขตต่อไปนี้
ตำแหน่งการประกาศขอบเขต ตำแหน่งที่มองเห็นได้
'ส่วนตัว' ในขั้นตอนระดับขั้นตอน ขั้นตอนย่อย หรือขั้นตอนการทำงานในขั้นตอนที่มีการประกาศ
'ส่วนตัว' ในส่วนการประกาศของฟอร์มระดับโมดูลหรือโมดูลโค้ด (.frm, .bas) ทุกขั้นตอนในฟอร์มหรือโมดูลโค้ด
'สาธารณะ' ในส่วนการประกาศของโมดูลโค้ดสากล (.bas) ทุกที่ในแอปพลิเคชัน
ในแอปพลิเคชัน Visual Basic ให้ใช้ตัวแปรส่วนกลางเฉพาะเมื่อไม่มีวิธีที่สะดวกในการแชร์ข้อมูลระหว่างแบบฟอร์มเท่านั้น เมื่อต้องใช้ตัวแปรส่วนกลาง ให้ประกาศตัวแปรเหล่านั้นในโมดูลเดียวและจัดกลุ่มตามฟังก์ชัน ตั้งชื่อที่มีความหมายให้กับโมดูลนี้เพื่อระบุบทบาทของโมดูล เช่น Public.bas
แนวทางปฏิบัติในการเขียนโค้ดที่ดีคือการเขียนโค้ดที่เป็นโมดูลาร์ให้ได้มากที่สุด ตัวอย่างเช่น ถ้าแอปพลิเคชันของคุณแสดงกล่องโต้ตอบ ให้ใส่ตัวควบคุมและโค้ดทั้งหมดที่จำเป็นในการกรอกกล่องโต้ตอบให้เสร็จสมบูรณ์ในรูปแบบเดียว ซึ่งจะช่วยจัดระเบียบโค้ดของแอปพลิเคชันให้เป็นส่วนประกอบที่มีประโยชน์ และลดโอเวอร์เฮดรันไทม์
ยกเว้นตัวแปรโกลบอล (ซึ่งไม่ควรส่งผ่าน) ขั้นตอนและฟังก์ชันควรดำเนินการกับอ็อบเจ็กต์ที่ส่งผ่านไปเท่านั้น ควรระบุตัวแปรร่วมที่ใช้ภายในขั้นตอนในส่วนการประกาศที่จุดเริ่มต้นของขั้นตอน นอกจากนี้ ควรใช้ ByVal เพื่อส่งพารามิเตอร์ไปยังขั้นตอนย่อยและขั้นตอนการทำงาน เว้นแต่มีความจำเป็นที่ชัดเจนในการเปลี่ยนค่าพารามิเตอร์ที่ส่งผ่าน
เมื่อขนาดของโครงการเติบโตขึ้น งานของตัวแปรการกำหนดขอบเขตจะเพิ่มขึ้นอย่างรวดเร็ว การวางคำนำหน้าช่วงตัวอักษรตัวเดียวไว้หน้าคำนำหน้าประเภทแสดงถึงการเติบโตนี้ แต่ความยาวของชื่อตัวแปรไม่ได้เพิ่มขึ้นมากนัก
คำนำหน้าขอบเขตตัวแปร
ตัวอย่างคำนำหน้าช่วง
gstrUserName ส่วนกลาง
ระดับโมดูล mmblnCalcInProgress
ภายในที่จะประมวลผลโดยไม่มี dblVelocity
หากตัวแปรถูกประกาศเป็นสาธารณะในโมดูลมาตรฐานหรือโมดูลฟอร์ม แสดงว่าตัวแปรนั้นมีขอบเขตส่วนกลาง หากตัวแปรถูกประกาศเป็นส่วนตัวในโมดูลมาตรฐานหรือโมดูลฟอร์มตามลำดับ ตัวแปรนั้นจะมีขอบเขตระดับโมดูล
หมายเหตุ: ความสอดคล้องเป็นกุญแจสำคัญในการใช้เทคนิคนี้อย่างมีประสิทธิภาพ ตัวตรวจสอบไวยากรณ์ใน Visual Basic จะไม่จับตัวแปรระดับโมดูลที่ขึ้นต้นด้วย "p"
คงที่
เนื้อความของชื่อคงที่จะเป็นตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ โดยให้อักษรตัวแรกของแต่ละคำเป็นตัวพิมพ์ใหญ่ แม้ว่าค่าคงที่ Visual Basic มาตรฐานไม่มีชนิดข้อมูลและข้อมูลช่วง คำนำหน้าเช่น i, s, g และ m จะมีประโยชน์สำหรับการทำความเข้าใจค่าและช่วงของค่าคงที่ สำหรับชื่อคงที่ ควรปฏิบัติตามกฎเดียวกันกับตัวแปร ตัวอย่างเช่น:
mintUserListMax 'ขีดจำกัดสูงสุดสำหรับรายชื่อผู้ใช้'
'(ค่าจำนวนเต็ม เฉพาะโมดูล)
gstrNewLine 'อักขระขึ้นบรรทัดใหม่'
'(String ใช้ทั่วโลกโดยแอปพลิเคชัน)
ตัวแปร
การประกาศตัวแปรทั้งหมดจะช่วยประหยัดเวลาในการเขียนโปรแกรม เนื่องจากจะมีข้อผิดพลาดที่เกิดจากการดำเนินการพิมพ์น้อยลง (เช่น เป็น UserNameTmp, sUserNameTmp หรือ sUserNameTemp) ในแท็บตัวแก้ไขของกล่องโต้ตอบตัวเลือก ให้ทำเครื่องหมายที่ตัวเลือกต้องมีการประกาศตัวแปร คำสั่ง Option Explicit กำหนดให้ตัวแปรทั้งหมดได้รับการประกาศในโปรแกรม Visual Basic
ตัวแปรควรนำหน้าเพื่อระบุประเภทข้อมูล และสามารถขยายคำนำหน้าเพื่อระบุขอบเขตตัวแปรได้โดยเฉพาะโปรแกรมขนาดใหญ่
ใช้คำนำหน้าต่อไปนี้เพื่อระบุประเภทข้อมูลของตัวแปร
ชนิดข้อมูลตัวแปร
ตัวอย่างคำนำหน้าชนิดข้อมูล
สตริง (ประเภทสตริง) str strFName
จำนวนเต็ม (ชนิดจำนวนเต็มสั้น) int intQuantity
ยาว (ชนิดจำนวนเต็มยาว) lng lngDistance
เดี่ยว (ชนิดตัวเลขทศนิยมความแม่นยำเดียว) sng sngAverage
สองเท่า (ชนิดจุดลอยตัวที่มีความแม่นยำสองเท่า) dbl dblTolerance
บูลีน (ชนิดบูลีน) bln blnพบ
ไบต์ (ประเภทไบต์) โดย bytRasterData
วันที่ (ประเภทวันที่) dte dteNow
สกุลเงิน (การคำนวณสกุลเงินและชนิดการคำนวณจุดคงที่) Cur CurRevenue
วัตถุ (ประเภทวัตถุ) obj objCurrent
ตัวแปร vnt vntCheckSum
อธิบายชื่อตัวแปรและขั้นตอน
เนื้อความของตัวแปรหรือชื่อโพรซีเดอร์ควรเป็นแบบผสมและยาวพอที่จะอธิบายวัตถุประสงค์ได้ นอกจากนี้ ชื่อฟังก์ชันควรขึ้นต้นด้วยคำกริยา เช่น InitNameArray หรือ CloseDialog
สำหรับคำที่ใช้บ่อยหรือระยะยาว ขอแนะนำให้ใช้ตัวย่อมาตรฐานเพื่อปรับความยาวของชื่อให้เหมาะสม โดยทั่วไป ชื่อตัวแปรที่ยาวเกิน 32 อักขระจะอ่านได้ยากบนจอภาพ VGA
เมื่อใช้คำย่อ ตรวจสอบให้แน่ใจว่าคำเหล่านั้นสอดคล้องกันตลอดทั้งแอปพลิเคชัน ในโปรเจ็กต์ หากคุณใช้ Cnt สักพักหนึ่งและ Count สักพักหนึ่ง จะทำให้เกิดความสับสนโดยไม่จำเป็น
ประเภทที่ผู้ใช้กำหนด
ในโปรเจ็กต์ขนาดใหญ่ที่มีประเภทที่ผู้ใช้กำหนดมักจำเป็นต้องกำหนดคำนำหน้าสามอักขระให้แต่ละประเภท หากคำนำหน้าเหล่านี้ขึ้นต้นด้วย "u" การระบุประเภทเหล่านี้อย่างรวดเร็วเมื่อทำงานกับประเภทที่ผู้ใช้กำหนดจึงเป็นเรื่องง่าย ตัวอย่างเช่น ucli สามารถใช้เป็นคำนำหน้าสำหรับตัวแปรประเภทไคลเอ็นต์ที่ผู้ใช้กำหนด
[กลับสู่ดัชนี]
4. ในกรณีที่มีเงื่อนไขการเลือกอย่างง่าย ให้ใช้ฟังก์ชัน IIf()
รหัสของ Rosso:
ถ้า nNum = 0 แล้ว
sName = "แซนซี่"
อื่น
sName = "ซู"
สิ้นสุดถ้า
รหัสง่ายๆ:
sName=IIf(nNum=0,"sancy", "Xu")
5. ลองใช้ Debug.Print สำหรับการดีบัก
ในการดีบักของผู้เริ่มต้นจำนวนมาก MsgBox ใช้เพื่อติดตามค่าตัวแปร จริงๆ แล้ว Debug.Print ไม่เพียงแต่ให้ผลลัพธ์แบบเดียวกันเท่านั้น แต่ยังจะถูกละเว้นในระหว่างการคอมไพล์ขั้นสุดท้ายของโปรแกรมด้วย MsgBox จะต้องถูกแสดงความคิดเห็นหรือลบออกด้วยตนเอง
โดยทั่วไป:
MsgBox nชื่อ
ควร:
ตรวจแก้จุดบกพร่อง พิมพ์ nName
6. เมื่อแก้ไขคุณสมบัติของวัตถุซ้ำๆ ให้ลองใช้ With....End With
โดยทั่วไป:
แบบที่ 1 ความสูง = 5,000
แบบฟอร์ม 1 ความกว้าง = 6000
Form1.Caption = "นี่คือ MyLabel"
ควร:
ด้วยแบบฟอร์ม1
.ส่วนสูง = 5,000
.ความกว้าง = 6000
.Caption = "นี่คือ MyLabel"
จบด้วย
ประสิทธิภาพการดำเนินการโปรแกรมของโครงสร้างนี้ค่อนข้างสูง โดยเฉพาะในคำสั่งแบบวนซ้ำ
7. ลองใช้ไอคอนข้อความใน MsgBox เพื่อให้โปรแกรมมีมาตรฐานมากขึ้น
พูดโดยทั่วไป
vbInformation คือข้อความที่ใช้แจ้งการยืนยันหรือการดำเนินการที่สำเร็จ
vbExclamation ใช้เพื่อแจ้งข้อความเตือน
ข้อความ vbCritical ใช้เพื่อแจ้งสถานการณ์วิกฤติ
vbQuestion เป็นข้อความที่ใช้ถามคำถาม
[กลับสู่ดัชนี]
8. ใช้การแจงนับหากเป็นไปได้
รูปแบบการแจงนับคือ
[สาธารณะ | ส่วนตัว] ชื่อแจงนับ
ชื่อสมาชิก [= การแสดงออกคงที่]
ชื่อสมาชิก [= การแสดงออกคงที่]
-
สิ้นสุดอีนัม
คำสั่ง Enum ประกอบด้วยส่วนต่างๆ ดังต่อไปนี้:
คำอธิบายบางส่วน
ทางเลือกสาธารณะ บ่งชี้ว่าประเภท Enum สามารถมองเห็นได้ทั่วทั้งโปรเจ็กต์ ค่าเริ่มต้นสำหรับประเภท Enum คือสาธารณะ
ตัวเลือกส่วนตัว บ่งชี้ว่าประเภท Enum มองเห็นได้เฉพาะในโมดูลที่ประกาศเท่านั้น
จำเป็นต้องระบุชื่อ ชื่อของประเภท Enum นี้ name ต้องเป็นตัวระบุ Visual Basic ทางกฎหมายที่ใช้ในการระบุประเภทเมื่อกำหนดตัวแปรหรือพารามิเตอร์ของประเภท Enum นี้
จำเป็นต้องระบุชื่อสมาชิก ตัวระบุ Visual Basic ทางกฎหมายที่ระบุชื่อขององค์ประกอบที่เป็นส่วนประกอบของ Enum ประเภทนี้
การแสดงออกคงที่เป็นทางเลือก ค่าขององค์ประกอบ (ประเภท Long) สามารถเป็น Enum ประเภทอื่นได้ หากไม่ได้ระบุการแสดงออกคงที่ ค่าที่กำหนดจะเป็น 0 (หากองค์ประกอบเป็นชื่อสมาชิกแรก) หรือมากกว่าค่าของค่าก่อนหน้า
แสดงให้เห็น
ตัวแปรการแจงนับที่เรียกว่าหมายถึงตัวแปรที่กำหนดด้วยประเภทแจงนับ ทั้งตัวแปรและพารามิเตอร์สามารถกำหนดเป็นประเภท Enum ได้ องค์ประกอบของประเภท Enum จะถูกเตรียมใช้งานให้เป็นค่าคงที่ที่ระบุในคำสั่ง Enum ค่าที่กำหนดสามารถมีทั้งตัวเลขบวกและลบ และไม่สามารถเปลี่ยนแปลงในขณะรันไทม์ได้ ตัวอย่างเช่น:
Enum SecurityLevel IllegalEntry = -1 SecurityLevel1 = 0 SecurityLevel2 = 1 End Enum
คำสั่ง Enum สามารถปรากฏได้ในระดับโมดูลเท่านั้น หลังจากกำหนดประเภท Enum แล้ว คุณสามารถใช้เพื่อกำหนดตัวแปร พารามิเตอร์ หรือขั้นตอนที่ส่งคืนประเภทนั้นได้ ประเภท Enum ไม่สามารถรับรองด้วยชื่อโมดูลได้ ประเภท Enum สาธารณะในโมดูลคลาสไม่ใช่สมาชิกของคลาส แต่จะเขียนลงในไลบรารีประเภทเท่านั้น ประเภท Enum ที่กำหนดในโมดูลมาตรฐานไม่ได้ถูกเขียนลงในไลบรารีประเภท ประเภท Public Enum ที่มีชื่อเดียวกันไม่สามารถกำหนดได้ทั้งในโมดูลมาตรฐานและโมดูลคลาสเนื่องจากใช้เนมสเปซร่วมกัน หากมี Enum สองประเภทในไลบรารีประเภทต่างๆ ที่มีชื่อเดียวกันแต่มีสมาชิกต่างกัน การอ้างอิงตัวแปรประเภทนี้จะขึ้นอยู่กับไลบรารีประเภทใดที่มีลำดับความสำคัญในการอ้างอิงสูงกว่า
คุณไม่สามารถใช้ประเภท Enum เป็นเป้าหมายในบล็อก With
ตัวอย่างคำสั่งแจงนับ
ตัวอย่างต่อไปนี้สาธิตการใช้คำสั่ง Enum เพื่อกำหนดคอลเลกชันของค่าคงที่ที่มีชื่อ ในกรณีนี้ มีค่าคงที่สีที่เลือกได้ซึ่งใช้ในการออกแบบแบบฟอร์มการป้อนข้อมูลสำหรับฐานข้อมูล
อินเทอร์เฟซ Enum สาธารณะสี
icMistyRose = &HE1E4FF&
icSlateGray = &H908070&
icDodgerBlue = &HFF901E&
icDeepSkyBlue = &HFFFF00&
ไอซีสปริงกรีน = &H7FFF00&
icForestGreen = &H228B22&
ไอซีโกลเด้นร็อด = &H20A5DA&
icFirebrick = &H2222B2&
สิ้นสุดอีนัม
ข้อดีคือทำให้โปรแกรมเร็วขึ้น