2011-06-12 1 views
15

파일을 SharePoint에서 체크 아웃 할 수 있는지 확인하고, 그렇지 않은 경우 사용자에게 경고하고 다른 사람이 파일을 사용 중이라는 것을 알리는 코드를 작성 중입니다. 에 의해 사용 중이다. http://www.xcelfiles.com/IsFileOpen.html#anchor_37#if, #else, #end if ... VBA에서 해시 기호는 무엇을 의미합니까?

이 코드 자체는 꽤 좋은이며, 나는 내 목적을 적응 계획입니다 있도록 테스트 시나리오에서 작동하는 것 같다하지만 인식하지 못했습니다 :

는이 사이트에서 코드의 조각을 건너 왔어요 이전에 그와 같은 것을 본적이 없기 때문에 일부 구문이 사용되었습니다.

#If Not VBA6 Then 

'// Xl97 

For i = j - 1 To 1 Step -1 

    If Mid(strXl, i, 1) = Chr(0) Then Exit For 

Next 

i = i + 1 

#Else 

'// Xl2000+ 

i = InStrRev(strXl, strFlag1, j) + Len(strFlag1) 

#End If 

코드가하는 일을 이해하지만 '#'기호의 의미가 무엇인지 알지 못합니까?

의 사용의 또 다른 예는 다음과 같습니다

hdlFile = FreeFile 

Open strPath For Binary As #hdlFile 

strXl = Space(LOF(hdlFile)) 

Get 1, , strXl 

Close #hdlFile 

나는이에 정말 명백한 응답이 확신하지만 그것이 너무 모호하기 때문에 엉덩이에 통증이 구글하는 것들 중 하나입니다 . :(

많은 감사,

경고등

답변

22

해시 기호 repre 전 처리기 명령을 보내고 컴파일하기 전에 처리되어 본질적으로 동적/조건부 코드를 생성합니다. 이러한 유형의 명령은 교차 플랫폼 프로그래밍 기술을 관리하기 위해 C/C++와 같은 언어에서 자주 사용됩니다. 일반적인 사용법은 특정 환경이나 플랫폼 (예 : VBA, Windows, MacOSX 등)을 확인한 다음 플랫폼 특정 코드를 구현하는 것입니다.

http://en.wikipedia.org/wiki/Preprocessor

+2

이들은 또한 _directives_로 알려져 있으며, 조건부 컴파일에 사용됩니다. 컴파일러에 의해 처리되기 전에 _preprocessor_에 의해 해석되기 때문에 전 처리기 명령이라고합니다. –

+0

Brilliant. 정보를 주셔서 대단히 감사합니다. 이것은 코드를 훨씬 이해하기 쉽게 만든다. – Splatgore