2016-12-02 1 views
2

Microsoft에 따라 : https://msdn.microsoft.com/en-us/library/z2cty7t8(v=vs.100).aspx 다음 정적 변수 선언이 정확합니다.VBA 정적 변수로 인해 컴파일러 오류가 발생한다

Public Sub MyProc() 
    static count as integer = 0 
    count = count + 1 
End Sub 

Word 2010 VBA에 따르면 이것은 컴파일러 오류입니다. 원하는 것 :

Public Sub MyProc2() 
    static count as integer 
    count = count + 1 
End Sub 

정적 카운트가 0으로 초기화되었다고 가정해야합니다.

다른 사람에게 도움이되기를 바랍니다.

답변

4

질문에 대한 링크는 VBA가 아니라 VB.NET을 나타냅니다. VBA에는 두 번째 예제와 같은 구문이 필요합니다.

올바른 링크는 Visual Basic for Applications Reference – Static Statement입니다. 거기에 다음의 구문을 설명한다 :

정적는 varname [([첨자])]으로서 신품 입력] [varname에 [([첨자])]으로서 신품] 종류]. . .

여기서 볼 수 있듯이 VBA에서는 정적 변수가 선언 된 것과 동일한 문에 값을 할당 할 수 없습니다.

+1

FWIW, 이것은'Static' 특정하지 않습니다 - VBA를 수있는 유일한 한 줄 선언 \ 할당은 새로운 SomeClass'으로'희미한 foo는 것입니다. – Comintern

+0

'정적 카운트로 정수 : count = 1' ... 한 줄에 선언과 할당 :) – dee

0

감사합니다. Word VBA 2010 컴파일러는이 구문을 좋아합니다. 필자는 정적 변수를 컴파일러의 변덕에 맡기지 않고 정의하는 것을 선호합니다. 정수로

정적 수 : 계수 = 1