• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ExcelからAutoCADへの連携ができない)

ExcelからAutoCADへの連携ができない

このQ&Aのポイント
  • ExcelのVBAでAutoCADの操作をしようとしているが、連携ができない問題が発生している。
  • 参考資料を真似てVBAコードを実行した結果、GetObjectで「ERR'429'Activexコンポーネントはオブジェクトを作成できません。」というエラーメッセージが表示される。
  • AutoCAD 2004 タイプライブラリは参照にチェックが入っており、AutoCADの起動の有無に関係なく同じエラーが発生する。

質問者が選んだベストアンサー

  • ベストアンサー
  • Yes_No_F
  • ベストアンサー率40% (4/10)
回答No.3

少し勘違いされてるかな? VB6.0とは、ExcelVBAとは違いますよ。 「Visual Basic6.0」の略なんですが、これはExcelとは別物のソフト の事です。簡単に言えば、ソフト開発者向けの専用ソフトの事ですよ。 だから、完全にExcelVBAとは別の物です。ただ言語が「Visual Basic」で共通というだけです。  だから、VB6.0からExcelを参照する時に、アプリケーションから捕ら える必要があります。その時の記述が参考になるかもしれないと思い 回答しました。 procatopusさんの言うように、標準に搭載しているExcelの機能では、 捕らえきれないかもしれないですね。 私もLTとVBAの組み合わせで様々な処理を考えてきましたが、分かり ませんね。以前、自分の周りの誰かが、その処理を有効にするクラス モジュールをどっかで購入したとか聞いた様な気が。。。。。 (この辺は他の回答者を期待して下さい。) ところで、質問のソースで、 AcadApp.Visible = True となってますが、この処理は、オブジェクトを非表示から表示にする 処理。つまり、現在のAutoCADが表示となっている? こんな処理が本当にしたいのですか?あくまでサンプル? ただ単に、AutoCADを選択したい場合、ExcelとAutoCADが開かれてい る状態でのコーディングは Sub test() AppActivate "AutoCAD" End Sub で大丈夫ですよ。しかし、選択から先の処理が本命でしょうから。。 結局、この質問の先に、どういった処理をお考えなんでしょうか? VBAを使用するなら、スクリプトファイルにコマンドをシーケンシャル 出力して、スクリプトを実行する事による、自動作図を作成するみた いな処理を考えるのはどうでしょうか? あくまでアドバイスとしてです。

hirosan_77
質問者

お礼

いろいろご丁寧にありがとうございます。 何分初心者で真似から始めているものですから ExcelVBAと開発用の言語の処理が同じものと 思っていましたので、引用したものが動作する のではと勘違いしておりました。 知らないと言うことは恐ろしいものですね。  土地の形状、面積をAutoCADで作図するより、 Excelで線分作画や面積計算をしたほうが早いのでは ないかと思い自分なりにできればやって見たいと 思いまして不明な点を質問した訳でした。  これからも少しづつ勉強していきたいと思います。 不明な点があればご指導ください。 よろしくお願いします。

その他の回答 (2)

回答No.2

LTは残念ながらExcelVBAには未対応なんで使えませんよ。 LTでもVBAやLispが使用出来る外部ソフトはあるようですが・・・・ ここで検索すれば情報があるはずです。 http://www.mura.sh/ AcadRemocon使えばVBSでカスタマイズができますよ。(現在HPは引越し中のようですね。)

参考URL:
http://www.kjufactory.com/bbs/index.asp
hirosan_77
質問者

お礼

そうでしたかExcelVBAではAutoCAD LTとの連携は できないと言うことですね。 一つ勉強になりました。 ありがとうございました。

  • Yes_No_F
  • ベストアンサー率40% (4/10)
回答No.1

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」の変数宣言文がありませんので、なんとも言えない んですが、その辺は大丈夫でしょうか?

hirosan_77
質問者

お礼

お忙しいところありがとうございます。 ご指導いただいたExcelからExcelへの オブジェクト取得はばっちりでした。しかし、 ExcelからAutoCADのオブジェクト取得はだめでした。 Set AcadApp = GetObject(, "AutoCAD.Application") でやはり同じエラーです。 AutoCAD LT2004は問題なく作動します。 VB6.0とAutoCAD LT2004の関係なのでしょうか? 変数宣言 Dim AcadApp As AutoCAD.AcadApplication は質問に抜けていました。すみません 入っていました。

関連するQ&A