비밀번호를 잊으셨나요?

비밀번호를 잊으셨나요? 비밀번호를 재설정하려면 이메일 주소를 입력해주세요.

계정이 있나요? 로그인

You must login to ask a question.

비밀번호를 잊으셨나요?

아직 계정이 없으신가요? 회원가입 하기

해당 질문을 신고하는 이유를 간단히 입력해주세요.

해당 답변을 신고하는 이유를 간단히 입력해주세요.

해당 유저를 신고하는 이유를 간단히 입력해주세요.

로그인회원가입

고캐드 – 캐드(CAD) 정보의 중심

고캐드 – 캐드(CAD) 정보의 중심 Logo 고캐드 – 캐드(CAD) 정보의 중심 Logo

고캐드 – 캐드(CAD) 정보의 중심 Navigation

  • Q&A
    • AutoCAD & CADian
    • Inventor & Solidworks
    • Revit & ArchiCAD
    • 자유질문
    • 기타
  • 커뮤니티
    • 오늘의이슈
    • 자유게시판
    • 익명게시판
    • 건의게시판
  • 자료실
    • 자료요청
    • 일반파일
    • 도면샘플
    • 유틸리티
    • 기타
  • 작품 갤러리
    • 그래픽
    • 캐드도면
    • 3D모델
    • 기타
  • 뉴스&이벤트
    • 공지사항
    • 뉴스
    • 전시/행사
    • 이벤트
    • 기타
검색
질문하기

Mobile menu

닫기
질문하기
  • 홈
  • 카테고리
    • AutoCAD & CADian
    • Inventor & Solidworks
    • Revit & ArchiCAD
    • 자유질문
    • 기타
  • 투표
  • 커뮤니티 그룹
  • Q&A
    • AutoCAD & CADian
    • Inventor & Solidworks
    • Revit & ArchiCAD
    • 자유질문
    • 기타
  • 커뮤니티
    • 오늘의이슈
    • 자유게시판
    • 익명게시판
    • 건의게시판
  • 자료실
    • 자료요청
    • 일반파일
    • 도면샘플
    • 유틸리티
    • 기타
  • 작품 갤러리
    • 그래픽
    • 캐드도면
    • 3D모델
    • 기타
  • 뉴스&이벤트
    • 공지사항
    • 뉴스
    • 전시/행사
    • 이벤트
    • 기타
홈/ 질문/Q 101998
다음
진행 중
Lv.0
등록일: 2014-08-262014-08-26T09:59:50+09:00 2014-08-26T09:59:50+09:00카테고리: AutoCAD & CADian

VBA 함수 selectionset 값 전달 방법 좀 알려주세요.

안녕하세요?

VBA에서 아래와 같이 구현하려고 합니다.

sub main()
  dim sset as acadselectionset
  set ssetObj = ThisDrawing.SelectionSets.Add(“SSET”)
  ssetObj.SelectOnScreen
   kkk(sset)
end sub

function kkk(byrefl sset As acadselectionset)
  Dim Ent As AcadEntity
    For Each Ent In sset
    Next Ent
end function

위와 같이 하면 오류가 납니다.

함수에 전달하는 다른 방법이 있는것 같은데 아시는분 답변 부탁드립니다.


  • 0
  • 4 4 답변
  • 79 조회
공유
  • Facebook

    관련 있는 질문들

    • MDW파일 DWG파일로 변환 부탁드리겠습니다.
    • 직선의 한 지점에서 원의 최대거리 선 그리기
    • 캐드 모깎기 질문 드립니다
    • 블럭깰때 가시성으로 가려진 블럭들 처리

    4 답변

    • 작성 순
    • 최신 순
    • 공감 순
    1. aalan
    2. xcsh Lv.0
      2014-08-27T00:36:35+09:00답변 등록 답변 등록 일시 2014-08-27 12:36 am

      저도 많이는 모르지만  기초적인 부분이 좀 마음에 걸립니다.
      선언한 변수 sset  와 사용한 변수 ssetobj 가 다르고 
      function을 리턴값을 받지 않으시고
      에라발생 및 종료시  ThisDrawing.SelectionSets(“SSET”).Delete 로 지워야
      재수행시 지장이 없을텐데 안하시고 

      무엇을 하시려는지 모르겟지만 저는 아래처럼 변경해보았습니다.

      Sub main()

          On Error Resume Next
          ThisDrawing.SelectionSets(“SSET”).Delete
          On Error GoTo 0
         
          Dim sset As AcadSelectionSet
          Set sset = ThisDrawing.SelectionSets.Add(“SSET”)
          sset.SelectOnScreen
          
          n = kkk(sset)
         
          ThisDrawing.SelectionSets(“SSET”).Delete
         
      End Sub

      Function kkk(sset)
         
          Dim Ent As AcadEntity
          For Each Ent In sset
             Ent.color = 1
          Next Ent
         
      End Function

      • 0
      • 공유
        공유
        • 공유 Facebook
        • 공유 Twitter
    3. [Deleted User]
      2014-08-27T21:44:07+09:00답변 등록 답변 등록 일시 2014-08-27 9:44 pm

      감사합니다.

      n=kkk(sset)
      call kkk(sset) 가 같은건가요?

      • 0
      • 공유
        공유
        • 공유 Facebook
        • 공유 Twitter
    4. [Deleted User]
      2014-08-28T12:20:38+09:00답변 등록 답변 등록 일시 2014-08-28 12:20 pm

      우선 다릅니다.
      n = kkk(sset)은 kkk루틴의 결과를 n에 넣어주는 것이고
      call kkk(sset)은 루틴의 속성에 따라 sset에 결과를 넣을 수도 있고 그냥 어떠한 행위(메서드)를 하고 끝날 수도 있습니다.
      기본이 많이 부족하신 것 같네요. 좀 더 공부하시여 기본은 갖추시고 질문하시면 좋겠습니다.

      • 0
      • 공유
        공유
        • 공유 Facebook
        • 공유 Twitter
    5. xcsh Lv.0
      2014-08-28T15:22:04+09:00답변 등록 답변 등록 일시 2014-08-28 3:22 pm

      지금은 간단하게
      function은   값을 되돌려 받기 위한것이고
      Sub는    call로 실행만 한다고 기억하십시오.

      님이 용감하게 시도하시는 것은 잘하시는 것입니다.
      하지만  너무 급하게 하시려고 하는 것이 보입니다.

      자신이 만든 것을 고치고 반성하면서 실력이 늘게 됩니다.

      님이 올린 코드는 인용을 하면서 검토를 충분하게 하지 않았다는
      표시가 나기에 뭐하남님께서 공부를 하라고 하는 것입니다.

      앞의 댓글에 언급을 하지는 않았지만
      function kkk(byrefl sset As acadselectionset)에서 변수선언도 잘못 하셧는데
      byref나 byval로 하셔야 합니다.

      익숙하지 않은 지금은
      다른분의 코드를 많이 보시고       너무 많이 선언하지 마시고
      꼭 필요한 것을 한줄 한줄 찾아가셔야 합니다.

      • 0
      • 공유
        공유
        • 공유 Facebook
        • 공유 Twitter

    Sidebar

    질문하기
    공지사항

    • AI CAD의 미래! 캐디안 2025 1+1 프로모션 안내 2025-05-14

    Adv 234x60

    aalan

    Adv 234x60

    aalan

    Adv 120x600

    aalan

    Explore

    • 홈
    • 카테고리
      • AutoCAD & CADian
      • Inventor & Solidworks
      • Revit & ArchiCAD
      • 자유질문
      • 기타
    • 투표
    • 커뮤니티 그룹
    aalan

    Footer

    Support

    • 회사 및 서비스 소개
    • 자주 묻는 질문
    • 문의하기

    Guide

    • 제휴/협업 안내
    • 광고 서비스 안내

    Policy

    • 서비스 이용약관
    • 개인정보 처리방침
    • 광고성 정보 수신 동의

    Contents

    • 고밍스토리
    • 리습 시리즈

    정소프트 | 사업자등록번호 : 677-40-00198 | 대표 : 정은숙 | 이메일 : gocad.manager@gmail.com
    주소 : 서울특별시 강서구 양천로 400-12, 6층 614,615,617호(등촌동, 더리브골드타워)
    Copyright. 2012-2024 GOCAD All rights reserved