1. "&"는 "+"를 대체합니다.
2. 변수 이름은 대소문자를 구분해야 하며, 문은 잘 구성되어야 하며, 소스 코드 유지 관리가 이루어져야 합니다.
3. 다음과 같은 "객체 명명 규칙"의 좋은 습관을 길러주세요.
4. 단순 선택 조건의 경우 IIf() 함수를 사용합니다.
5. 디버깅을 위해 Debug.Print를 사용해 보세요.
6. 객체의 속성을 반복적으로 수정할 때는 With....End With를 사용해 보세요.
7. 프로그램이 더욱 표준화되도록 MsgBox의 메시지 아이콘을 사용해 보십시오. 8. 가능하면 열거형을 사용하십시오.
1. "&"는 "+"를 대체합니다.
많은 사람들의 프로그래밍 언어에서 "+"는 문자열을 연결하는 데 사용되므로 쉽게 모호해질 수 있습니다. 좋은 방법은 "&"를 사용하여 문자열을 연결하는 것입니다.
잘못된:
sMessage를 문자열로 희미하게 표시
s메시지 = "1" + "2"
옳은:
sMessage를 문자열로 희미하게 표시
sMessage = "1" & "2"
참고: "&" 뒤에 공백이 있습니다.
2. 변수 이름은 대소문자를 구분해야 하며, 문장은 잘 구성되어야 하며, 소스 코드 유지 관리가 이루어져야 합니다.
다음 두 코드를 비교해 보겠습니다.
어려운 코드 읽기:
희미한 SNAME을 문자열로
Dim NTURN을 정수로 사용
NTURN = 0이면
SNAME = "vbeden"인 경우
NTURN < 4 동안 수행
N턴 = N턴 + 1
고리
종료 조건
종료 조건
읽기 쉬운 코드:
희미한 sName을 문자열로
Dim nTurn을 정수로 사용
nTurn = 0이면
sName = "vbeden"이면
nTurn < 4일 때 수행
n턴 = n턴 + 1
고리
종료 조건
종료 조건
[색인으로 돌아가기]
3. 다음과 같은 "객체 명명 규칙"의 좋은 습관을 길러주세요.
권장되는 제어 접두사
제어 유형 접두사 예
3D 패널 pnl pnl그룹
ADO 데이터 ado adoBiblio
애니메이션 버튼 애니 애니MailBox
확인란 chk chkReadOnly
콤보 상자, 드롭다운 목록 상자 cbo cbo영어
명령 버튼 cmd cmdExit
공통 대화 상자 dlg dlgFileOpen
커뮤니케이션즈컴컴팩스
제어(특정 유형을 알 수 없는 절차에 사용됨) ctr ctrCurrent
데이터 datBiblio
데이터 바인딩된 콤보 상자 dbcbo dbcboLanguage
데이터 바인딩된 그리드 dbgrd dbgrdQueryResult
데이터 바인딩된 목록 상자 dblst dblstJobType
데이터 콤보 dbc dbcAuthor
데이터 그리드 dgd dgdTitles
데이터 목록 dbl dblPublisher
데이터 중계기 drp drpLocation
날짜 선택기 dtp dtpPublished
디렉토리 목록 상자 dir dirSource
드라이브 목록 상자 drv drvTarget
파일 목록 상자 fil filSource
플랫 스크롤 막대 fsb fsbMove
양식 입력 항목
프레임 프레임 언어
게이지 가우 가우상태
Graphgragra수익
Grid grd grd가격
계층적 flexgrid flex flexOrders
가로 스크롤 막대 hsb hsbVolume
이미지 img imgIcon
이미지 콤보 imgcbo imgcbo제품
ImageList ils ilsAllIcons
라벨 lbl lblHelpMessage
간단한 확인란 lwchk lwchkArchive
경량 콤보 상자 lwcbo lwcbo독일어
경량 명령 버튼 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 mnu파일열기
월간 보기 mvw mvwPeriod
MS 차트 채널 chSalesbyRegion
MS Flex 그리드 메시지 msgClients
MS 탭 mst mstFirst
OLE 컨테이너 ole ole워크시트
옵션 버튼 opt optGender
그림 상자 그림 picVGA
그림 클립 clp clpToolbar
ProgressBar prg prgLoadFile
원격 데이터 rdrdTitles
RichTextBox rtf rtf보고서
모양 shp shp원
슬라이더 sld sldScale
spn spnPages 회전
StatusBar sta staDateTime
SysInfo sys sysMonitor
TabStrip 탭 탭옵션
텍스트 상자 txt txtLastName
타이머 tmr tmr알람
툴바 tlb tlbActions
TreeView tre treOrganization
UpDown upd upd방향
세로 스크롤 막대 vsb vsbRate
------------------------------------- ----------------------------------
DAO(데이터 액세스 개체)에 권장되는 접두사
데이터 액세스 객체를 나타내려면 다음 접두사를 사용하세요.
데이터베이스 객체 접두사 예
컨테이너 conconReports
데이터베이스 db db계정
DBEngine dbe dbeJet
문서 문서 docSalesReport
필드 필드 fldAddress
Group grp grp금융
인덱스 ix idxAge
매개변수 prm prmJobCode
QueryDef qry qrySalesByRegion
레코드세트 기록 RecForecast
관계 상대 relEmployeeDept
TableDef 미정 미정 고객
사용자 usr usrNew
작업공간 wsp wspMine
------------------------------------- ----------------------------------
응용 프로그램은 많은 메뉴 컨트롤을 자주 사용하므로 이러한 컨트롤에 대한 고유한 명명 규칙 집합을 갖는 것이 유용합니다. 초기 "mnu" 태그 외에도 메뉴 컨트롤의 접두사가 확장되어야 합니다. 각 중첩 수준에 대해 추가 접두사가 추가되어 최종 메뉴 제목이 이름 문자열 끝에 배치됩니다. 아래 표에는 몇 가지 예가 나와 있습니다.
권장 메뉴 접두사
메뉴 제목 순서 메뉴 핸들러 이름
파일 열기 mnuFileOpen
파일 이메일 보내기 mnuFileSendEmail
파일 팩스 보내기 mnuFileSendFax
문자 형식 mnuFormatCharacter
도움말 목차 mnuHelpContents
이 명명 규칙을 사용하면 특정 메뉴 그룹의 모든 구성원이 Visual Basic 속성 창에 차례로 나열됩니다. 또한 메뉴 컨트롤 이름은 해당 메뉴 항목이 속한 메뉴 항목을 명확하게 나타냅니다.
다른 컨트롤의 접두사 선택
위에 나열되지 않은 컨트롤은 일관성을 위해 고유한 2자 또는 3자 접두사로 표준화되어야 합니다. 설명이 필요한 경우에만 3자보다 긴 접두사를 사용하세요.
상수 및 변수 명명 규칙
객체 외에도 상수와 변수에도 잘 구성된 명명 규칙이 필요합니다. 이 섹션에는 Visual Basic에서 지원하는 상수 및 변수에 대한 권장 규칙이 나열되어 있습니다. 데이터 유형과 범위를 식별하는 문제에 대해 논의합니다.
변수는 항상 가능한 가장 작은 범위에서 정의되어야 합니다. 전역(공개) 변수는 매우 복잡한 상태 구조로 이어질 수 있으며 애플리케이션의 논리를 이해하기 매우 어렵게 만들 수 있습니다. 전역 변수는 코드 재사용 및 유지 관리를 더욱 어렵게 만듭니다.
Visual Basic의 변수에는 다음과 같은 범위가 있을 수 있습니다.
범위 선언 위치 가시 위치
프로시저 수준 프로시저, 하위 프로시저 또는 선언된 프로시저의 함수 프로시저에서 '개인'
모듈 수준 양식 또는 코드 모듈(.frm, .bas) 선언 섹션의 'Private' 양식 또는 코드 모듈의 모든 프로시저
애플리케이션의 전역 코드 모듈(.bas) 선언 섹션에 있는 '공개'
Visual Basic 응용 프로그램에서는 폼 간에 데이터를 공유할 수 있는 편리한 방법이 없는 경우에만 전역 변수를 사용하십시오. 전역 변수를 사용해야 하는 경우 단일 모듈에서 선언하고 기능별로 그룹화하세요. 이 모듈에 Public.bas와 같이 역할을 나타내는 의미 있는 이름을 지정하십시오.
좋은 코딩 방법은 가능한 한 모듈식으로 코드를 작성하는 것입니다. 예를 들어, 응용 프로그램이 대화 상자를 표시하는 경우 대화 상자를 완료하는 데 필요한 모든 컨트롤과 코드를 단일 형식에 넣습니다. 이는 애플리케이션의 코드를 유용한 구성 요소로 구성하고 런타임 오버헤드를 줄이는 데 도움이 됩니다.
전역 변수(전달되어서는 안 됨)를 제외하고 프로시저와 함수는 전달된 개체에서만 작동해야 합니다. 프로시저 내에서 사용되는 전역 변수는 프로시저 시작 부분의 선언 섹션에서 식별되어야 합니다. 또한 전달된 매개 변수 값을 변경해야 하는 명백한 필요성이 없는 한 ByVal을 사용하여 매개 변수를 Sub 프로시저 및 함수 프로시저에 전달해야 합니다.
프로젝트 규모가 커짐에 따라 변수 범위 지정 작업도 급격히 증가합니다. 유형 접두사 앞에 단일 문자 범위 접두사를 배치하면 이러한 증가가 표시되지만 변수 이름의 길이는 크게 늘어나지 않습니다.
가변 범위 접두사
범위 접두사 예
전역 gstr사용자 이름
모듈 수준 mmblnCalcInProgress
dblVelocity 없이 처리할 로컬
표준 모듈이나 양식 모듈에서 변수가 Public으로 선언된 경우 변수는 전역 범위를 갖습니다. 변수가 표준 모듈 또는 양식 모듈에서 각각 Private로 선언된 경우 변수는 모듈 수준 범위를 갖습니다.
참고: 이 기술을 효과적으로 사용하려면 일관성이 중요합니다. Visual Basic의 구문 검사기는 "p"로 시작하는 모듈 수준 변수를 포착하지 않습니다.
끊임없는
상수 이름의 본문은 대소문자가 혼합되어 있으며 각 단어의 첫 글자는 대문자입니다. 표준 Visual Basic 상수에는 데이터 유형 및 범위 정보가 포함되어 있지 않지만 i, s, g 및 m과 같은 접두사는 상수의 값과 범위를 이해하는 데 유용합니다. 상수 이름의 경우 변수와 동일한 규칙을 따라야 합니다. 예를 들어:
mintUserListMax '사용자 목록의 최대 제한
'(정수 값, 모듈에 로컬)
gstrNewLine '줄바꿈 문자
'(문자열, 응용 프로그램에서 전역적으로 사용됨)
변하기 쉬운
모든 변수를 선언하면 입력 작업(예: aUserNameTmp, sUserNameTmp 또는 sUserNameTemp)으로 인해 발생하는 오류가 줄어들기 때문에 프로그래밍 시간이 절약됩니다. 옵션 대화 상자의 편집기 탭에서 변수 선언 필요 옵션을 선택하세요. Option Explicit 문을 사용하려면 Visual Basic 프로그램에서 모든 변수를 선언해야 합니다.
변수에는 해당 데이터 유형을 나타내기 위해 접두사가 붙어야 합니다. 그리고 특히 대규모 프로그램의 경우 변수 범위를 나타내기 위해 접두사를 확장할 수 있습니다.
변수의 데이터 유형을 나타내려면 다음 접두사를 사용하십시오.
가변 데이터 유형
데이터 유형 접두사 예
문자열(문자열 유형) str strFName
정수(짧은 정수형) int intQuantity
Long(긴 정수형) lng lngDistance
Single(단정밀도 부동 소수점 숫자 유형) sng sngAverage
Double(이중 정밀도 부동 소수점 유형) dbl dblTolerance
Boolean(부울 유형) bln blnFound
바이트(바이트 유형) bytbytRasterData
날짜(날짜 유형) dte dteNow
통화(통화 계산 및 고정 소수점 계산 유형) cur curRevenue
객체(객체 유형) obj objCurrent
변형 vnt vntCheckSum
변수 및 프로시저 이름 설명
변수 또는 프로시저 이름의 본문은 대소문자를 혼합해야 하며 해당 목적을 설명할 수 있을 만큼 길어야 합니다. 또한 함수 이름은 InitNameArray 또는 CloseDialog와 같은 동사로 시작해야 합니다.
자주 사용되거나 긴 용어의 경우 이름의 길이를 합리화하기 위해 표준 약어를 사용하는 것이 좋습니다. 일반적으로 32자가 넘는 변수 이름은 VGA 모니터에서 읽기 어렵습니다.
약어를 사용할 때는 응용 프로그램 전체에서 일관되게 사용되는지 확인하세요. 프로젝트에서 Cnt를 잠시 사용하고 Count를 잠시 사용하게 되면 불필요한 혼란을 야기하게 됩니다.
사용자 정의 유형
사용자 정의 유형이 많은 대규모 프로젝트에서는 각 유형에 고유한 3자리 접두사를 지정해야 하는 경우가 많습니다. 이러한 접두사가 "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를 사용해 보세요.
일반적으로:
Form1.Height = 5000
Form1.Width = 6000
Form1.Caption = "MyLabel입니다."
해야 한다:
Form1 사용
.높이 = 5000
.폭 = 6000
.Caption = "MyLabel입니다."
끝
이 구조의 프로그램 실행 효율성은 특히 루프 문에서 상대적으로 높습니다.
7. 프로그램이 더욱 표준화되도록 MsgBox의 메시지 아이콘을 사용해 보십시오.
일반적으로 말하자면
vbInformation은 확인 또는 성공적인 작업을 프롬프트하는 데 사용되는 메시지입니다.
vbExclaim은 경고 메시지를 표시하는 데 사용됩니다.
vb위기 상황을 알리는 데 사용되는 중요한 메시지
vbQuestion은 질문을 유도하는 데 사용되는 메시지입니다.
[색인으로 돌아가기]
8. 가능하면 열거형을 사용하세요
열거 형식은 다음과 같습니다.
[공개 | 비공개] 열거형 이름
멤버 이름 [= 상수 표현식]
멤버 이름 [= 상수 표현식]
....
끝 열거형
Enum 문은 다음 부분으로 구성됩니다.
부분 설명
공개 선택사항. 프로젝트 전체에서 Enum 유형이 표시됨을 나타냅니다. Enum 유형의 기본값은 공개입니다.
개인 선택사항. Enum 유형이 선언된 모듈에서만 표시됨을 나타냅니다.
이름이 필요합니다. 이 Enum 유형의 이름입니다. name은 이 Enum 유형의 변수나 매개변수를 정의할 때 유형을 지정하는 데 사용되는 유효한 Visual Basic 식별자여야 합니다.
회원 이름이 필요합니다. 이 Enum 형식의 구성 요소 이름을 지정하는 유효한 Visual Basic 식별자입니다.
상수 표현은 선택 사항입니다. 요소의 값(Long 유형)입니다. 다른 Enum 유형일 수 있습니다. Constantexpression이 지정되지 않은 경우 할당된 값은 0(요소가 첫 번째 membername인 경우)이거나 바로 전임 값보다 1이 큽니다.
설명하다
소위 열거형 변수는 Enum 유형으로 정의된 변수를 참조합니다. 변수와 매개변수 모두 Enum 유형으로 정의할 수 있습니다. Enum 유형의 요소는 Enum 문에 지정된 상수 값으로 초기화됩니다. 할당된 값에는 양수와 음수가 포함될 수 있으며 런타임 시 변경할 수 없습니다. 예를 들어:
Enum SecurityLevel IllegalEntry = -1 SecurityLevel1 = 0 SecurityLevel2 = 1 End Enum
Enum 문은 모듈 수준에서만 나타날 수 있습니다. Enum 유형을 정의한 후 이를 사용하여 해당 유형을 반환하는 변수, 매개변수 또는 프로시저를 정의할 수 있습니다. 열거형 유형은 모듈 이름으로 한정될 수 없습니다. 클래스 모듈의 공용 Enum 유형은 클래스의 멤버가 아니며 단순히 유형 라이브러리에 작성됩니다. 표준 모듈에 정의된 열거형 형식은 형식 라이브러리에 기록되지 않습니다. 동일한 이름을 가진 Public Enum 형식은 동일한 네임스페이스를 공유하기 때문에 표준 모듈과 클래스 모듈 모두에서 정의할 수 없습니다. 이름은 같지만 멤버가 다른 서로 다른 형식 라이브러리에 두 개의 Enum 형식이 있는 경우 이 형식의 변수에 대한 참조는 참조 우선 순위가 더 높은 형식 라이브러리에 따라 달라집니다.
With 블록에서는 Enum 유형을 대상으로 사용할 수 없습니다.
Enum 문 예
다음 예제에서는 Enum 문을 사용하여 명명된 상수 컬렉션을 정의하는 방법을 보여줍니다. 이 경우 데이터베이스의 데이터 입력 양식을 디자인하는 데 사용되는 선택 가능한 색상 상수가 있습니다.
공개 열거형 인터페이스색상
icMistyRose = &HE1E4FF&
icSlateGray = &H908070&
icDodger블루 = &HFF901E&
icDeepSkyBlue = &HFFFF00&
icSpring그린 = &H7FFF00&
icForestGreen = &H228B22&
ic황금막대 = &H20A5DA&
icFirebrick = &H2222B2&
끝 열거형
장점은 프로그래밍 속도가 빨라진다는 것입니다.