IT story

키워드 세트는 실제로 VBA에서 무엇을합니까?

hot-time 2020. 6. 14. 09:51
반응형

키워드 세트는 실제로 VBA에서 무엇을합니까?


쉬운 질문이지만, 이것에 대한 기술적 답변을 원합니다!

차이점은 무엇입니까?

i = 4

Set i = 4

VBA에서? 후자가 오류가 발생한다는 것을 알고 있지만 이유를 완전히 이해하지 못합니다.


set객체에 참조를 할당하는 데 사용됩니다. C에 해당하는 것은

 int i;
int* ref_i;

i = 4; // Assigning a value (in VBA: i = 4)
ref_i = &i; //assigning a reference (in VBA: set ref_i = i)

귀하의 경우 오류가 발생합니다. :-)

Set객체 참조를 할당합니다. 다른 모든 할당의 경우 (암시 적, 선택적 및 거의 사용되지 않은) Let문이 정확합니다.

Set object = New SomeObject
Set object = FunctionReturningAnObjectRef(SomeArgument)

Let i = 0
Let i = FunctionReturningAValue(SomeArgument)

' or, more commonly '

i = 0
i = FunctionReturningAValue(SomeArgument)

에서 MSDN :

키워드 설정 : VBA에서 오브젝트 설정과 오브젝트의 기본 속성 지정을 구분하려면 Set 키워드가 필요합니다. Visual Basic .NET에서는 기본 속성이 지원되지 않으므로 Set 키워드는 필요하지 않으며 더 이상 지원되지 않습니다.


Set은 값을 할당하는 것과 반대로 객체 참조를 설정하는 데 사용됩니다.


내 머리 꼭대기에서 Set은 COM 객체를 변수에 할당하는 데 사용됩니다. Set을 수행함으로써 나는 후드 아래에서 객체의 수명을 관리하기 위해 객체에서 AddRef () 호출을하고 있다고 생각합니다.


따라서 값을 설정하려는 경우 "Set"이 필요하지 않습니다. 그렇지 않으면 워크 시트 / 범위 등의 개체를 참조하는 경우 "Set"을 사용해야합니다.


Set은 키워드이며 VBA의 개체에 대한 참조를 할당하는 데 사용됩니다.

예를 들어 * 아래 예는 VBA에서 Set을 사용하는 방법을 보여줍니다.

워크 시트로 Dim WS

WS = ActiveWorkbook.Worksheets ( "Sheet1") 설정

WS.Name = "승인"

참고 URL : https://stackoverflow.com/questions/349613/what-does-the-keyword-set-actually-do-in-vba

반응형