티스토리 뷰

VBA

[Excel][VBA] 이름 정의

어린왕자1234 2021. 11. 20. 00:47

참조 대상(RefersTo)은  = 대상 으로 표현

 

■ 셀/범위에 이름 정의하기

    ActiveWorkbook.Names.Add  _
        Name:="수입", _
        RefersTo:="=Sheet1!$A$1"

■ 행/열에 이름 정의하기

    ActiveWorkbook.Names.Add  _

        Name:="참조영역",  _

        RefersTo:="=Sheet1!$G:$G"

■ 상수에 이름 정의하기

    ActiveWorkbook.Names.Add  _
        Name:="참조",  _
        RefersToR1C1:="=25"

■ 개체에 이름 정의하기

    : 피벗 테이블, 도형과 같은 개체에도 이름정의 가능

 

 

※ 이미 참조되고 있는  셀/범위에 이름 적용하기

    A1, B1에 수입, 지출 이름을 지정하더라도 C1에 적용된 수식이 자동을 이름이 적용된 수식으로 변경되지 않는다.

    이름이 적용된 수식으로 변경하려면 이름 적용을 행해야 한다.

   

[ Excel 에서 적용]  수식 > 정의된 이름 > 이름 정의 > 이름 적용

C1에 이름적용 미적용 상태(=A1-B1) C1에 이름적용 상태(=수입-지출)

[ VBA를 이용하여 적용하기 ]

    - C1에만 이름지정 적용

    Range("C1").Select
    Selection.ApplyNames Names:=Array("수입", "지출")

 

    - 시트 전체에 이름지정 적용

    Cells.ApplyNames Names:=Array("수입", "지출")

 

[참조] 이름 적용 범위

기본적으로 이름지정의 적용 범위는 통합문서이다.

  통합문서 범위에 적용 해당 시트 범위에 적용
생성
사용 어느 시트에서든 이름 사용 가능
= 수입 * 2000
다른 시트에서 사용하려면  시트명! + 이름  으로 사용
= Sheet2!수입 * 2000
VBA ActiveWorkbook.Names.Add  _
        Name:="수입", _
        RefersTo:="=Sheet1!$A$1"
ActiveWorkbook.Names.Add  _
        Name:="Sheet2!수입", _
        RefersTo:="=Sheet1!$A$1"