키워드 세트는 실제로 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
'IT story' 카테고리의 다른 글
"git branch -r"을 실행할 때 왜 "origin / HEAD"가 표시됩니까? (0) | 2020.06.14 |
---|---|
XML을 목록으로 직렬화 해제 할 수 있습니까? (0) | 2020.06.14 |
"벡터화"란 무엇입니까? (0) | 2020.06.14 |
동적 개수의 매개 변수를 사용하여 동적 함수 호출 (0) | 2020.06.14 |
.gitignore에 존재하지 않는 추적되지 않은 파일을 어떻게 표시합니까? (0) | 2020.06.14 |