如题,主要是函数不会用,lisp接VBA用法还不会,VBA更是没怎么看过。代码如下:
 - (defun c:tt()
- (vl-load-com)
- (if (null MW-accept) (jinn-get-word-Lib))
- (jinn-get-word-object)
- (setq range (MW-get-range lastpgobj))
- (MW-addpicture "c:\\1.jpg" range)
- (MW-put-bold range 0)
- (setq filename "c:\\wordtest1.doc")
- (vlax-invoke-method docobj "Saveas" filename nil nil nil nil nil nil)
- )
- (defun jinn-get-word-Lib()
- (setq office:dir "C:\\Program Files\\Microsoft Office\\")
- (cond
- ((setq mwlib (findfile (strcat office:dir "office\\" "MSWord8.olb"))))
- ((setq mwlib (findfile (strcat office:dir "office\\" "MSWord9.olb"))))
- ((setq mwlib (findfile (strcat office:dir "office\\" "MSWord.olb"))))
- ((setq mwlib (findfile (strcat office:dir "office10\\" "MSWord.olb"))))
- ((setq mwlib (findfile (strcat office:dir "office12\\" "MSWord.olb"))))
- ((setq mwlib (findfile (strcat office:dir "office14\\" "MSWord.olb"))))
- (t (setq mwlib nil))
- )
- (if mwlib
- (vlax-import-type-library
- :tlb-filename mwlib
- :methods-prefix "MW-"
- :properties-prefix "MW-"
- :constants-prefix "MW-"
- )
- (alert "Word typelib 文件不存在")
- )
- )
- (defun jinn-get-word-object()
- (setq WordObj (vlax-create-object "Word.Application"))
- (vla-put-visible WordObj 1)
- (setq docs (vlax-get-property WordObj 'documents))
- (setq docobj (vlax-invoke-method docs 'Add))
- (setq pgobj (MW-get-paragraphs docobj))
- (setq lastpgobj (MW-get-last pgobj))
- )
以上代码是从书上抄袭来的,还算能看懂。
应该是 (MW-addpicture "c:\\1.jpg" range)这一句出错了吧,运行时返回 错误: 参数类型错误: VLA-OBJECT "c:\\1.jpg"
请教大神们,这个函数怎么用呢。。。
|