티스토리 뷰

반응형

업무용으로 활용하는 엑셀의 최강 루틴은 VBA가 마지막을 장식해 줍니다.

특정 이미지가 어떤 조건이 바뀔때 보이게 하고, 조건이 바뀌면 안보이게 하는 구문을 구현한다고 해자구요.

실제 사용한 예입니다. 그리 어려운 것은 아니니 천천히 따라해 보시기 바랍니다.

실제 사용예의 VBA

 

판넬 두께 1.5T의 'Vcut' '노컷'에 따라 다음장의 Vcut 이미지 작은거 보이게 하기 안보이게 하기?

이것이 실제 구현하고자 하는 부분인데요,

아래와 같은 방법으로 실제 구현해서 사용하고 있습니다.

실제 사용하는 엑셀 시트는 

sheet 4개입니다.

이름관리자에서 보면 'vcut여부'라는 이름을 부여했습니다. 

 

개발자화면 alt + F11을 누르시면 위와 같은 화면에 실제 작성한 코드인데 아주 짧습니다.

Private Sub Worksheet_Activate()

Dim oShape As Shape

Set oShape = Sheets("자재청구서").Shapes("vcutimage")

If Sheets("발주").Range("vcut여부") = "노컷" Then

    oShape.Visible = False
    
  Else
     oShape.Visible = True

End If

End Sub

 

vcut 적용했을때 이미지 나타낸 것

자재청구서' sheet의 파란색 원이 vut선택값에 따라 나타났다 숨었다 하는 효과를 볼 수 있습니다.

 

현장에서 이런 식으로 응용하면 많은 결과를 얻을 수 있을 것 같네요~

불량을 줄이기 위한 우리의 노력은 계속됩니다.

요약하면,

1. 이름관리자로 '범위'를 설정해서 값을 하나 부여하고

2. 나타날 그림에도 이름을 부여합니다.

3. 변화될 해당셀이 있는 워크 시트의 Worksheet_Activate() 내용에 기록해서 적용되도록 하면 됩니다

4.  코드는 아래와 같이 간단합니다.

; 배열선언

Dim oShape As Shape

; 도형의 이름을 잡아줍니다.
Set oShape = Sheets("자재청구서").Shapes("vcutimage")

; 조건문으로 '노컷'일때는 도형이 보이지 않게 설정하고, 아닐때는 보이게 하는 구문입니다.
If Sheets("발주").Range("vcut여부") = "노컷" Then

    oShape.Visible = False
    
  Else
     oShape.Visible = True

End If

 

이제 여러분도 만들어 보자구요!

반응형
댓글