컴퓨터/엑셀

VBA 팁

풍경소리^^ 2021. 8. 24. 17:00

Ctrl + Space : 코드 자동 완성

Ctrl + Y : 현재 줄 삭제

Ctrl + I : 함수 설명 보기

 

데이터형 확인 - 직접실행창 ?vba.TypeName(999999999999999999) 

 

excel object model 로 검색

excel object model transpose

worksheetFuction.Transpose

 

stop

 

Dim obj as range

직접실행창 ? obj is nothing 객체비교

객체할당 set obj = range("A1")

 

variant 모든 것을 가질 수 있는 변수형

 

Dim arr As Variant

arr=Array("kim","jong","su")

 

직접실행창 for each x in arr: debug.print x: next x

kim

jong

su

 

직접실행창에서는 Dim 사용할 수 없다 - 선언없이 사용

직접실행창 a="kim"

? typename(a)

string

 

시트A1에 kim 이 입력된 상태에서

직접실행창 set x = range("A1")

? x.value

kim

 

직접실행창

b=60

if b>=60 then ? "합격" else ? "실격"

합격

 

debug.print 는 ? 로 대체할 수 있다

 

값으로 참조하느냐 / 주소로 참조하느냐

일반변수 vs 개체변수

일반변수)

a=10

b=a

? a,b

10 10

 

b=45

? a,b

10 45

 

a=10

주소a----10--------------a10101주소

b=a----------------------b11111주소

주소b----10-------------b11111주소

b=45--------------------b11111주소

주소b----45-------------b11111주소

 

개체변수)

셀A1에 kim 이 입력된 상태

set a=range("A1")---------------a10101주소

set a=[A1] 같은의미-------------a10101주소

set b=a -------------------------b주소에 a10101주소

?a.value-------------------------a10101주소에 저장된 값

kim

?b.value-------------------------b주소에 a10101주소

kim

a.value="john"------------------a10101주소에 저장된 값

?a.value-------------------------b주소에 a10101주소

john

?b.value-------------------------b주소에 a10101주소

john

b.value="new"-----------------b주소에 a10101주소

?b.value------------------------b주소에 a10101주소

new

?a.value------------------------b주소에 a10101주소

new

 

ByVal vs ByRef

ByVal 값참조

ByRef 주소참조 -------------- set 개념