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

작성자:  

 ist공원 (istpark)

추천:  2
파일:     조회:  2542
제목:   [VBA]DrawingObject 판단 방법
     
  * 답변하시는 분들께 도움이 되도록 자신의 환경을 아래 항목 옆에 기재해 주세요.

1. 엑셀 버전(95,97,2000,2002):
2. 윈도우즈의 버전(win95,win98,winME,winNT,win2000,winXP):
3. CPU (486,PentiumI/II/III/IV...):
4. RAM (32,64,128,256,512MB,1G...): 

* 아래줄에 질문을 작성하세요 >>
VBA를 공부하던 중에,
개체(챠트, 그림, 클립아트 등)의 크기조정 및 위치이동을 하는 매크로를 짜고 있습니다.
선택한 영영이 챠트나 그림 등의 개체일 경우에 어떤 작업을 하라는 명령을 주고 싶은데, 방법을 잘 모르겠습니다.

if typename(selection) = "그림이나 챠트 등의 개체" then
   원하는 작업
end if

고수님들의 조언 부탁드립니다.
 
[불량 게시물 신고]  
사내안녕하세요..^^

미흡하지만 제가 답변을..

아래의 코드를 살펴봐주세요..

If TypeOf Selection Is Object  Then MsgBox 1

..도움이 되셨기를..
08-07 (15:38)
삭제 ■신고
ist공원답변 감사드립니다만,
만약 선택영역이 셀일 경우(그리기 개체가 아닌)에는 에러를 내도록 하고 싶은데요
Selection이 range일 경우에도 위의 코드는 MsgBox 1을 수행하게 됩니다.
재고 바랍니다.(Plz~~~)
08-07 (15:46)
삭제 ■신고
사내안녕하세요..^^

그렇다면 우선 if함수를 이용해 선택된 것이 range인가부터 살펴보시면 될 듯 싶습니다.

..어떤 작업을 하시는지 제가 잘 모르기에..^^;

..도움이 되셨기를..
08-07 (15:49)
삭제 ■신고
ist공원헤헤..죄송합니다.
선택한 것이 range인지는 if typename(selection) = "range" 이렇게 확인하는 것인가요?^^
08-07 (15:51)
삭제 ■신고
사내안녕하세요..^^

아래의 코드를 살펴봐주세요..

If TypeOf Selection Is Range Then
    MsgBox "선택한 개체는 Range입니다."
ElseIf TypeOf Selection Is Object  Then
    MsgBox "선택한 개체는 Object입니다."
End If

..이런 것을 원하시는지요..? ^^*

..도움이 되셨기를..
08-07 (15:56)
삭제 ■신고
ist공원항상 사내님의 친절하고 성실한 답변 감사드립니다.
Object라 하면, cell같은 영역도 있고, 단추, 그림, 챠트 같은 그리기 object로 있습니다.
상기한 단추, 그림, 챠트 같은 그리기 오브젝트를 구분하는 법을 알고 싶었습니다.
If TypeOf Selection is 그리기오브젝트(챠트,그림..) Then
이런 것은 없을른지요???
질문이 어수선합니다.
헤헤
08-07 (16:05)
삭제 ■신고
R2안녕하세요... "ist공원"님...


아마... 이번 질문의 경우는 직접 이것 저것 해보시면서 터득하시는 것이 가장 좋을 것 같습니다.

워크시트에 여러 오브젝트들을 삽입(그려넣은)한 후... VBE의 직접실행 창(Ctrl+G)에서 아래의 코드를 입력한 다음 하나씩 선택하면서 Enter를 때려 보세요.

? typename(selection)
※ ? 는 print의 약어랍니다.


그 다음 실제 코딩에서...

If Typename(Selection) = "Range" then 어쩌고저쩌고...

처럼 응용하심이...


암튼... 즐거운 엑셀되시기를... ^^*
08-07 (17:39)
삭제 ■신고
ist공원네...좋은 방법 감사합니다.
그런데,
typename(그림) = picture
typename(챠트) = chartarea
이런 식으로 나오기에...
저는 그림과 챠트는 따로따로 구분하기 보다는 같이 묶어낼 수 있는 방법이 있나해서요...
그러니까...
"함수(그림)=함수(챠트)=...함수(그리기개체)=어떤 값"
이런 게 없나 해서 여쭤 봤습니다.
좋은 답변 감사드립니다..
08-07 (18:15)
삭제 ■신고
R2제가 알기로는 없는 걸로 알고 있습니다.
대신 "Or" 연산자로 아래와 같이 해보시겠습니까?

If Typename(Selection) = "Picture" Or Typename(Selection) = "ChartArea" then 어쩌고저쩌고...
08-07 (18:37)
삭제 ■신고
ist공원끝까지 좋은 답변 주셔서 감사드립니다.08-07 (21:00)
삭제 ■신고
        
  

작성일 : 2003-08-07(15:09)
최종수정일 : 2003-08-07(15:09)