lispだとこんな感じ
;エクセルの場合
(defun bn2xl (/ xl bn ename)
(vl-load-com)
(setq xl (vlax-create-object "EXCEL.Application"))
(vlax-put-property xl 'visible :vlax-true)
(vlax-invoke-method (vlax-get-property xl 'workbooks) 'add)
(while
(progn
(setvar 'errno 0)
(setq ename (car (entsel "\nr-click is exit.")))
(cond
((= (getvar 'errno) 52)
nil
)
((= (getvar 'errno) 7)
(prompt "\nnothig is selected.")
t
)
((not (setq bn (cdr (assoc 2 (entget ename)))))
(prompt "\nnot block is selected.")
t
)
(bn
(vlax-put-property (vlax-get-property xl 'activecell)
'value2
bn
)
(vlax-invoke-method (vlax-get-property (vlax-get-property xl 'activecell)
'offset
1
0
)
'activate
)
)
)
)
)
(vlax-release-object xl)
)
;クリップボードの場合
(defun bn2cb (/ cb bn ename)
(vl-load-com)
(setq cb (vlax-get-property
(vlax-get-property
(vlax-create-object "htmlfile")
'ParentWindow
)
'ClipBoardData
)
)
(while
(progn
(setvar 'errno 0)
(setq ename (car (entsel "\nr-click is exit.")))
(vlax-invoke-method cb 'cleardata "text")
(cond
((= (getvar 'errno) 52)
nil
)
((= (getvar 'errno) 7)
(prompt "\n...")
(prompt "\nnothig is selected.")
(prompt "\nclipboard is cleared.")
(prompt "\n...")
t
)
((not (setq bn (cdr (assoc 2 (entget ename)))))
(prompt "\n...")
(prompt "\nnot block is selected.")
(prompt "\nclipboard is cleared.")
(prompt "\n...")
t
)
(bn
(vlax-invoke-method cb 'setdata "text" bn)
(prompt "\n...")
(prompt (strcat "\nblock name is " bn "."))
(prompt "\nclipboard data is setted.")
(prompt "\n...")
t
)
)
)
)
(vlax-release-object cb)
)
- zukki-
- 2019/01/17 (Thu) 19:04:07