비밀번호를 잊으셨나요?

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

계정이 있나요? 로그인

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 104396
다음
진행 중
Lv.0
등록일: 2015-06-222015-06-22T11:51:14+09:00 2015-06-22T11:51:14+09:00카테고리: AutoCAD & CADian

엑셀 연동 LISP 문의

안년하세요!
이번에 시스템을 업그레이드 하면서 이전에 사용중인 Lisp을 사용하고자 하였으나 오류가 발생하여 엑셀 경로와 버젼 등을 수정하였으나  해결이 안되고 있습니다. 여러 고수분들의 도움이 절실하오니 내용 보시고 의견을 달아 주시기 부탁 드립니다 

; 오류: 잘못된 인수 유형: VLA-OBJECT nil
변경 전:  윈도우 xp 32bit,. Autocad2013 32bit, 엑셀 2007 32bit
변경 후: 윈도우 7 64Bit, AutoCAD2015 64Bit, 엑셀: 2013 64Bit

(defun excel_to_lisp () 
 (setq sheetname “CAD_OUT”);; 엑셀의 시트 이름
 
 (vl-load-com)
 
 (if (null msxc-xl24HourClock)
  (vlax-import-type-library
    :tlb-filename
    ;;;”C:/Program Files/Microsoft Office/OFFICE12/XL5EN32.OLB”
    “C:/Program FilesMicrosoft OfficeOffice15/MSOUTL.OLB”
    :methods-prefix
    “msxm-“
    :properties-prefix
    “msxp-“
    :constants-prefix
    “msxc-“
  )
 )
;;        (setq *msx* (vlax-get-or-create-object “Excel.Application.12”))
 (setq *msx* (vlax-get-or-create-object “Excel.Application.15”))
 
     ;; 엑셀이 실행되고 있지 않으면.. 실행 구문 추가(2013.02.13)
      (if (/= (vla-get-visible *msx*) :vlax-true)
      (progn
       (vla-put-visible *msx* 1);;———— 엑셀을 실행한다    
       (alert “시트 이름 CAD_OUT이 있는 엑셀파일을 선택하시오..”)
       (msxm-findfile *msx*);;—————- 엑셀에서 파일열기 대화상자가 열려서, 파일을 선택한다..
         )    
          )
             
 
 
 (if (/= nil *msx*)
  (progn
   (setq *sheets* (vlax-get-property *msx* ‘Sheets))
   (setq *worksheet* (vlax-get-property *sheets* ‘Item sheetname))
   (msxm-activate *worksheet*)
   (setq *range* (vlax-get-property *worksheet* ‘UsedRange))
   (setq *columns* (vlax-get-property *range* ‘columns))
   (setq col_cnt (vlax-get-property *columns* ‘count))
   (setq *rows* (vlax-get-property *range* ‘rows))
   (setq row_cnt (vlax-get-property *rows* ‘count))
   (setq row 1)
   (setq gear_list (list))
   (repeat row_cnt
    (setq col 1)
    (setq gear_list_X (list))
    (repeat col_cnt
     (setq newrange (vlax-get-property *range* ‘Item row col))
     (setq *newrange2* (vlax-variant-value newrange))
     (setq cellValue (vlax-variant-value (vlax-get-property *newrange2* ‘value xlRangeValueDefault)))
     (setq gear_list_X (append gear_list_X (list cellValue)))
     (setq col (1+ col))
    )
    (setq row (1+ row))
    (setq gear_list (append gear_list (list cellValue)))
;;;           (setq gear_list (append gear_list (list gear_list_X)))
   )
  )
 )
 (vlax-release-object *msx*)
 (vlax-release-object *sheets*)
 (vlax-release-object *worksheet*)
 (vlax-release-object *columns*)
 (vlax-release-object *rows*)
 (vlax-release-object *newrange2*)
 gear_list
)

  • 0
  • 5 5 답변
  • 128 조회
공유
  • Facebook

    관련 있는 질문들

    • 캐디안으로 도면을 열때 한글이 ???로 표시되는 문제
    • CADian Lisp
    • 캐디안에서 렌더링 기능이 지원되나요?
    • 동적블록 신축에서 길이를 늘릴때 최종 길이를 입력 또는 늘려야 하는 차이만큼의 길이를 입력

    5 답변

    • 작성 순
    • 최신 순
    • 공감 순
    1. aalan
    2. [Deleted User]
      2015-06-22T12:52:14+09:00답변 등록 답변 등록 일시 2015-06-22 12:52 pm

      (defun excel_to_lisp () 
       (setq sheetname “CAD_OUT”);; 엑셀의 시트 이름
       ;(setq sheetname “Sheet1”);; 엑셀의 시트 이름
       (vl-load-com)
       (setq *msx* (vlax-get-or-create-object “Excel.Application”))
          (if (/= (vla-get-visible *msx*) :vlax-true)
        (progn
         (vla-put-visible *msx* 1);;———— 엑셀을 실행한다    
         (alert “시트 이름 CAD_OUT이 있는 엑셀파일을 선택하시오..”)
         (vlax-invoke-method *msx* ‘findfile);;—————- 엑셀에서 파일열기 대화상자가 열려서, 파일을 선택한다..
              )
          )
       (if (/= nil *msx*)
        (progn
           (setq *sheets* (vlax-get-property *msx* ‘Sheets))
           (setq *worksheet* (vlax-get-property *sheets* ‘Item sheetname))
           (vlax-invoke-method *worksheet* ‘activate)
           (setq *range* (vlax-get-property *worksheet* ‘UsedRange))
           (setq *columns* (vlax-get-property *range* ‘columns))
           (setq col_cnt (vlax-get-property *columns* ‘count))
           (setq *rows* (vlax-get-property *range* ‘rows))
           (setq row_cnt (vlax-get-property *rows* ‘count))
           (setq row 1)
           (setq gear_list (list))
           (repeat row_cnt
          (setq col 1)
          (setq gear_list_X (list))
          (repeat col_cnt
           (setq newrange (vlax-get-property *range* ‘Item row col))
           (setq *newrange2* (vlax-variant-value newrange))
           (setq cellValue (vlax-variant-value (vlax-get-property *newrange2* ‘value 10)))
           (setq gear_list_X (append gear_list_X (list cellValue)))
           (setq col (1+ col))
          )
           (setq row (1+ row))
          (setq gear_list (append gear_list (list cellValue)))
         )
        )
       )
       (vlax-release-object *msx*)
       (vlax-release-object *sheets*)
       (vlax-release-object *worksheet*)
       (vlax-release-object *columns*)
       (vlax-release-object *rows*)
       (vlax-release-object *newrange2*)
       gear_list
      )

      • 0
      • 공유
        공유
        • 공유 Facebook
        • 공유 Twitter
    3. [Deleted User]
      2015-06-22T13:09:46+09:00답변 등록 답변 등록 일시 2015-06-22 1:09 pm

      수정해 주신 프로그램 중 ” (setq sheetname “Sheet1”);; 엑셀의 시트 이름 “
      이 부분을 삭제하고 하니 정상적으로 프로그램이 돌아 갑니다.
      바쁘신데 도와 주셔서 감사 드립니다.

      • 0
      • 공유
        공유
        • 공유 Facebook
        • 공유 Twitter
    4. [Deleted User]
      2015-06-22T13:54:30+09:00답변 등록 답변 등록 일시 2015-06-22 1:54 pm

      테스트하느라 임시로 만들고 안지웠네요. ㅎㅎ

      • 0
      • 공유
        공유
        • 공유 Facebook
        • 공유 Twitter
    5. [Deleted User]
      2015-07-01T11:45:34+09:00답변 등록 답변 등록 일시 2015-07-01 11:45 am

      죄송한데 이 리습 명령어가 먼가요???

      • 0
      • 공유
        공유
        • 공유 Facebook
        • 공유 Twitter
    6. [Deleted User]
      2015-07-03T16:11:53+09:00답변 등록 답변 등록 일시 2015-07-03 4:11 pm

      엑셀에 있는.. 값을 리트스로 가져오는 함수 인걸로 추정되네요..

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

    Sidebar

    질문하기
    공지사항

    • 국산 CAD ‘캐디안 2025’ 출시 사전 예약 진행 2024-09-27

    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