나눔터  
  HOME > 나눔터 > 묻고답하기 > 엑셀
엑셀
엑셀에 대한 질문과 답변을 올려주세요. 단, 취지에 맞지 않는 글은 운영자가 삭제합니다.
 "000 님, 도와주세요", "부탁 드립니다.", "급합니다!" 등과 같이 막연한 제목을 달지 말아주세요.
[필독] 빠르고 정확한 답변을 얻는 16가지 Tip !
[필독] 저작권법 개정에 따른 이용안내

작성자:  

 조삿갓 (choga21)

추천:  2
파일:     조회:  1743
제목:   사용자정의 함수에서 그 함수를 호출한 셀을 인수로 받는 방법이 있나요?
     
  예를들면 ROW 함수의 경우
A1 셀에 
=ROW(B3) 이라고 입력하면 B3 셀의 행번호인 3을 반환하지만
파라메터를 생략하여
=ROW() 라고 입력하면 이 수식이 입력된 A1 셀의 행번호 1을 반환하지요

이런 방식으로 동작하는 사용자정의함수를 설계할 수 있을까요?

Function test(Optional rng As Range = Nothing) As String
    If rng Is Nothing Then Set rng = ActiveCell
      ' 여기서 ActiveCell 말고 이 함수를 호출한 수식이 들어 있는 셀을 rng에 대입하고 싶습니다.
    test = rng.NumberFormat
      ' 원래 목적은 NumberFormat을 반환하는 게 목적이 아니고 예시이며
      ' 이 기법을 알아두면 꽤 유용하게 쓸 데가 있을 것 같아서...
End Function
 
[불량 게시물 신고]  
루아흐뉴마찾아보니 Application.ThisCell 이란 Property가 있는 것 같습니다.

Function test(Optional rng As Range = Nothing) As Variant
    If rng Is Nothing Then
      Set rng = Application.ThisCell
      test = rng.Address
    Else
      test = rng.Value / 2
    End If
End Function

이와 같이 사용자정의 함수를 만들었을 때,
함수에 인수를 생략하면 해당 셀의 주소를 반환하네요
07-02 (19:31)
삭제 ■신고
조삿갓감사합니다. 루아흐뉴마님
늘 시원한 해답을 주시네요. ^^
07-02 (19:59)
삭제 ■신고
        
  

작성일 : 2018-06-30(22:22)
최종수정일 : 2018-06-30(22:23)