2011-02-10 6 views
6

이미 알아 냈으므로 적어도 6 개가 있습니다 : [email protected]#$%&.VBA에서 변수 이름 뒤에 가능한 접미사는 무엇입니까?

 
Dim A!, [email protected], C#, D$, E%, F& 
Debug.Print "A! - " & TypeName(A) 
Debug.Print "[email protected] - " & TypeName(B) 
Debug.Print "C# - " & TypeName(C) 
Debug.Print "D$ - " & TypeName(D) 
Debug.Print "E% - " & TypeName(E) 
Debug.Print "F& - " & TypeName(F) 

출력

 
A! - Single 
[email protected] - Currency 
C# - Double 
D$ - String 
E% - Integer 
F& - Long 

어디 구문 설탕에 대한 문서 : 여기

은 싹둑입니까?

다른 가능한 접미사는 무엇입니까?

날짜가 있습니까?

+9

도망가! 도망쳐 라! 도망 가세요! 이것들은 사용되어서는 안되는 끔찍한 잔유물입니다. 필자가 가장 가까이 온 것은'$'가없는 버전에서 반환 된 Variant가 아닌'Right $','Left $','Mid $'및'Trim $'을 사용하여 문자열 반환을 강제하는 것입니다. – RolandTumble

+0

@Roland , 동의했다! 정확히 하나의 목적으로 사용합니다. http : // stackoverflow.com/questions/3047239/universal-way-to-get-a-nice-text-a-variable-in-vb/3047931 # 3047931 – jtolle

+0

Roland와 동의하지만 여전히 +1 질문과 용어에 대해 _syntax sugar_ 그것은 당신에게 키스를주는 코드와 같습니다. (예, 저는 외롭습니다.) – ray

답변

5

전체 (?) 목록은 여기에 http://support.microsoft.com/kb/110264의 변수 및 접두사 접두사입니다. Remou가 말했듯이, 그들은 권장되지 않습니다 (사용은 "낙담"이라고 기사는 말합니다). 나는 당신이 당신의 명부에서 그들을 모두 커버했다고 믿습니다. 날짜는 기술적으로 변종 (부동 소수점으로 저장 됨)이므로 해당 날짜의 바로 가기가 없습니다.

4

오랫동안 사용되지 않았으며 이전 버전과의 호환성을 위해서만 사용됩니다. 변수를 필요한 유형으로 선언하십시오. 또한 변수를 입력 할 수 있습니다.

+0

꽤 편리합니다. :) . IMHO VB 자체는 거대한 역 호환성을 가지며 프로그램을 작성하는 사람은 아무도 없습니다.하지만 어려운 현실에서는 상황이 약간 다릅니다. 나를 참조 할 수 있도록 참조하여 사용 여부를 결정할 수 있습니다. 그것 또는 아닙니다? – archimed7592

+5

나는 VBA에서 매일 물건을 쓴다. 'VB.Net으로 전환하는 것이 좋겠지 만 이것은 기술 회사가 아니며 우리가 절대적으로해야 할 때까지 새로운 버전의 Office로 업그레이드하지 않을 것입니다. (이것은 정말로 당신의 질문에 답하지 않습니다. – PowerUser

+2

VB6 정보 http://www.thevbprogrammer.com/Ch02/02-02-DataTypesNamingConv.htm에서 얻을 수 있습니다. 모든 형식을 사용할 수있는 것은 아니며 명확성과는 별도로이 표기법을 피할 수있는 주된 이유입니다. 모든 데이터 유형은 인텔리 센스 및 'As'사용으로 사용할 수 있습니다. – Fionnuala

3

이 접미사는 유형 힌트이며, 허용되는 답변의 링크가 구형입니다.

Dim someInteger% '% Equivalent to "As Integer" 
Dim someLong& '& Equivalent to "As Long" 
Dim [email protected] '@ Equivalent to "As Currency" 
Dim someSingle! '! Equivalent to "As Single" 
Dim someDouble# '# Equivalent to "As Double" 
Dim someString$ '$ Equivalent to "As String" 

Dim someLongLong^ '^ Equivalent to "As LongLong" in 64-bit VBA hosts 

그래서 당신은 64 비트 호스트 응용 프로그램에 대한 VBA7에 도입, LongLong에 대한 ^ 제외하고, 그들 모두를했다. 정확하게 Microsoft가 새로운 가치 유형에 대한 새로운 유형 힌트를 도입 한 이유는 저 밖에 있습니다.

그래도 구문 설탕보다 더 구문 독의, 그리고 As 절은 일 전에이 제독 64 BASIC 2.0 fizzbuzz 코드에서 예를 들어, 다시 BASIC의 조상, 공룡 버전의 모든 방법을 날짜 :

줄 번호, Rem 의견 및 명시 적 Let 값 assigments은 1982 년 일이 모든 비용을 피하기도했다 :
1000 REM INIT VARIABLES 
1010 LET FIZZ$ = "FIZZ" 
1011 LET BUZZ$ = "BUZZ" 
1020 LET FIZZ% = 3 
1021 LET BUZZ% = 5 
1030 LET MIN% = 1 
1031 LET MAX% = 15 
1100 PRINT FIZZ$ + ":" + STR$(FIZZ%) 
1101 PRINT BUZZ$ + ":" + STR$(BUZZ%) 
1102 PRINT FIZZ$ + BUZZ$ + ":" + STR$(FIZZ%*BUZZ%) 
1105 PRINT 

당신이 볼 수 있듯이 는 타입 힌트는 VBA가 지원하는 유일한 팔 레오 코드하지 않습니다.

리터럴에서

는 타입 힌트를 통해 명시 적 변환을 선호 :

Debug.Print TypeName(32&) 'prints Long 
Debug.Print TypeName(CLng(32)) 'prints Long 

당신이 자신 당신 여부 해야을 요청할 수 있습니다 여부를 스스로에게 물어보십시오. - 알 수 없음