본문 바로가기

엑셀/VBA

엑셀 VBA 시트에 입력된 수식 모두 숨기는 속성 - FormulaHidden

반응형

이전 글에서 사용된 셀 전체를 선택하는 속성 UsedRange에 대해 알아보았습니다. 이번에는 엑셀을 사용하면서 셀에 수식을 입력하여 사용하는데, 입력된 수식을 숨기는 기능을 제공해주는 속성 FormulaHidden에 대해 알아보겠습니다.

 

엑셀 VBA 사용된 전체 셀 범위 확인하는 속성 - UsedRange

 

엑셀 VBA 사용된 전체 셀 범위 확인하는 속성 - UsedRange

이전 글에서 워크시트를 숨기는 메서드와 보호하는 메서드에 대해 알아보았습니다. 이번에는 엑셀 시트에서 데이터가 입력된 셀의 범위를 알아내는 UsedRange 속성에 대해 알아보겠습니다. 엑셀 V

mr-johndoe.tistory.com

 

 

 

 

 

 

1. FormulaHidden 속성

  FormulaHidden 속성은 Range 개체 속성으로 셀에 입력되어 있는 수식을 숨기고자 할 때 사용합니다.

엑셀의 셀서식에서 보호 탭을 보시면 잠금과 숨김 기능이 있는데 숨김을 체크하시면 수식이 숨겨지는 것과 같습니다. 이를 사용하시기 전에 엑셀 메뉴에서 검토-보호-시트보호를 클릭하여 시트보호를 하신 상태에서 숨김 기능을 실행하셔야 합니다. 

 

예제에서 SpecialCells 속성을 이용하여 수식이 입력된 셀을 선택하도록 하는 내용이 포함되어 있습니다. 

SpecialCells 속성은 조건에 맞는 셀을 선택할 때 사용하는 속성으로 이전 글을 참조하시기 바랍니다.

 

VBA Range의 SpecialCells 속성 이용하기

 

VBA Range의 SpecialCells 속성 이용하기

이전 글에서 Range에 대해 알아보았습니다. 이번에는 Range의 속성 중에서 SpecialCells에 대해 알아보겠습니다. VBA 엑셀 개체 다루기 - Range VBA 엑셀 개체 다루기 - Range VBA는 사용자가 오피스 프로그램

mr-johndoe.tistory.com

 

 

 

 

 

 

2. 예제로 확인

  엑셀 시트에 ActiveX 버튼을 하나 만들고 Caption에 '수식 숨기기'라 입력합니다. 생성한 버튼을 마우스로 더블클릭하시고 열린 코드 창에 다음과 같이 코드를 입력합니다.

 

   Private Sub Button_수식숨기기_Click()

      Dim 수식셀 As Range

 

      Set 수식셀 = ActiveSheet.UsedRange.SpecialCells(Type:=xlCellTypeFormulas)

      수식셀.FormulaHidden = True

      ActiveSheet.Protect Password:="1111"

   End Sub

 

Range 형식의 수식셀이라는 이름으로 변수를 생성하고 이 변수에 엑셀 시트에서 사용된 전체 셀 중에서 수식이 입력된 셀만을 입력하였습니다.

 

수식셀.FormulaHidden = True

: 수식이 입력된 셀의 수식을 숨기는 기능을 활성화하는 명령입니다.

 

ActiveSheet.Protect Password:="1111"

: 암호는 1111로 설정하고 활성화된 시트 보호를 활성화시켰습니다.

 

코드를 모두 입력하신 후 생성한 버튼을 클릭하시면 시트 내에 입력된 수식이 보이지 않게 됩니다.

 

수식을 다시 보이게 하시려면 엑셀 메뉴에서 검토-보호-시트보호해제를 클릭하시고 암호 입력창에 설정한 암호를 입력하시고 확인 버튼을 누르시면 수식이 다시 보이게 됩니다.

 

VBA로 해제를 하시려면 수식 숨기기 버튼을 클릭하시기 전에 버튼 하나를 더 생성하셔서 해제 버튼으로 명명하시고 다음과 같이 코드를 입력합니다.

 

   Private Sub Button_해제_Click()

      Dim 수식셀 As Range

 

      ActiveSheet.Unprotect Password:="1111"

      Set 수식셀 = ActiveSheet.UsedRange.SpecialCells(Type:=xlCellTypeFormulas)

      수식셀.FormulaHidden = False

   End Sub

 

ActiveSheet.Unprotect Password:="1111"

: 활성화된 시트의 보호를 해제하는 명령입니다.

 

UnProtect 속성으로 시트 보호만 해제를 하면 셀 서식의 보호 탭에서 숨김 기능이 v 체크되어 있는 상태입니다. 이를 해제하기 위하여 다시 수식이 입력된 셀만 선택한 후 그 셀들의 숨기기 기능을 해제하는 코드를 다음에 작성하였습니다.

 

UnProtect 속성을 실행하기 전에 수식이 입력된 셀만 선택하는 코드를 작성에 놓으면 에러가 발생합니다. 셀의 수식을 숨기기해 놓았기 때문에 찾을 수 없으므로 발생하는 에러로 UnProtect 속성으로 숨기기 속성을 해제한 상태에서 실행해야 합니다.

 

반응형