ExcelのVBAでAutoCADの操作をしようと勉強中なのですが
参考資料を真似て
--------------------------------------------------------
Function acad_int()
On Error Resume Next
Set AcadApp = GetObject(, "AutoCAD.Application")
(上の行でERR'429'Activexコンポーネントはオブジェクトを作成できません。のエラー)
If Err Then
Set AcadApp = CreateObject("AutoCAD.Application")
AcadApp.Visible = True
End If
AcadApp.Visible = True
End Function
-----------------------------------------------------------
コピーしてExcelで実行すると、GetObjectで上記( )内のエラ-メッセージがでます。
参照でAutoCAD 2004 タイプライブラリ にはチェック入れています。
また、AutoCADを起動していても、していなくても同じみたいです。
使用しているのは ・AutoCAD LT2004
・オフィス2003Excel
ですが、何せ初心者で始めたばかりでここから進む事ができません。
どうかお力をお貸しください。
AutoCADを参照した事が無いので、参考になるか分かりませんが。
VB6.0からExcelを操作する場合には下記の様な記述になります。
変数宣言~オブジェクトセットまでの流れですが。
---------------------------------------------------------
'オブジェクトへの参照を格納する変数を宣言(事前バインディング)
Dim xlApp As Excel.Application
Dim xlBook As Excel.Workbook
Dim xlSheet As Excel.Worksheet
'変数にオブジェクトの参照を代入します。
'新規 workbookとworksheet オブジェクトを作成します。
Set xlApp = CreateObject("Excel.Application")
Set xlBook = xlApp.Workbooks.Add
Set xlSheet = xlBook.Worksheets(1)
---------------------------------------------------------
変数「AcadApp」の変数宣言文がありませんので、なんとも言えない
んですが、その辺は大丈夫でしょうか?
質問者
お礼
お忙しいところありがとうございます。
ご指導いただいたExcelからExcelへの
オブジェクト取得はばっちりでした。しかし、
ExcelからAutoCADのオブジェクト取得はだめでした。
Set AcadApp = GetObject(, "AutoCAD.Application")
でやはり同じエラーです。
AutoCAD LT2004は問題なく作動します。
VB6.0とAutoCAD LT2004の関係なのでしょうか?
変数宣言
Dim AcadApp As AutoCAD.AcadApplication
は質問に抜けていました。すみません
入っていました。
お礼
いろいろご丁寧にありがとうございます。 何分初心者で真似から始めているものですから ExcelVBAと開発用の言語の処理が同じものと 思っていましたので、引用したものが動作する のではと勘違いしておりました。 知らないと言うことは恐ろしいものですね。 土地の形状、面積をAutoCADで作図するより、 Excelで線分作画や面積計算をしたほうが早いのでは ないかと思い自分なりにできればやって見たいと 思いまして不明な点を質問した訳でした。 これからも少しづつ勉強していきたいと思います。 不明な点があればご指導ください。 よろしくお願いします。