
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
ですが、何せ初心者で始めたばかりでここから進む事ができません。
どうかお力をお貸しください。
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を使用するなら、スクリプトファイルにコマンドをシーケンシャル
出力して、スクリプトを実行する事による、自動作図を作成するみた
いな処理を考えるのはどうでしょうか?
あくまでアドバイスとしてです。
いろいろご丁寧にありがとうございます。
何分初心者で真似から始めているものですから
ExcelVBAと開発用の言語の処理が同じものと
思っていましたので、引用したものが動作する
のではと勘違いしておりました。
知らないと言うことは恐ろしいものですね。
土地の形状、面積をAutoCADで作図するより、
Excelで線分作画や面積計算をしたほうが早いのでは
ないかと思い自分なりにできればやって見たいと
思いまして不明な点を質問した訳でした。
これからも少しづつ勉強していきたいと思います。
不明な点があればご指導ください。
よろしくお願いします。
No.2
- 回答日時:
LTは残念ながらExcelVBAには未対応なんで使えませんよ。
LTでもVBAやLispが使用出来る外部ソフトはあるようですが・・・・
ここで検索すれば情報があるはずです。
http://www.mura.sh/
AcadRemocon使えばVBSでカスタマイズができますよ。(現在HPは引越し中のようですね。)
参考URL:http://www.kjufactory.com/bbs/index.asp
そうでしたかExcelVBAではAutoCAD LTとの連携は
できないと言うことですね。
一つ勉強になりました。
ありがとうございました。
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」の変数宣言文がありませんので、なんとも言えない
んですが、その辺は大丈夫でしょうか?
お忙しいところありがとうございます。
ご指導いただいたExcelからExcelへの
オブジェクト取得はばっちりでした。しかし、
ExcelからAutoCADのオブジェクト取得はだめでした。
Set AcadApp = GetObject(, "AutoCAD.Application")
でやはり同じエラーです。
AutoCAD LT2004は問題なく作動します。
VB6.0とAutoCAD LT2004の関係なのでしょうか?
変数宣言
Dim AcadApp As AutoCAD.AcadApplication
は質問に抜けていました。すみません
入っていました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
AutoCADでクリップボードから貼...
-
図面上で、削除できない線について
-
動きがカクカクします
-
AutoCAD ビューポートで3D断面...
-
AutoCAD図面の「ゴミ」って取れ...
-
EXCELにAUTOCAD図面を貼り付け...
-
ExcelからAutoCADへの連携がで...
-
autoCADのレイヤーと表示順序
-
AutoCAD 画層をロックすると。。
-
OSX イラレCS オブジェクトが...
-
AUTOCAD 2005 マクロ
-
イラストレーターからパワーポ...
-
InDesign CS4
-
JW CADについての質問です
-
ベクターワークスで作成した図...
-
勝手反対って何でしょうか?
-
1/500から1/300にする 何倍で...
-
建築図面に関してです。 A2の紙...
-
変換した図面を開いた所縮尺が...
-
図面などにて出てくる「m/m」は...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
AutoCADでクリップボードから貼...
-
EXCELにAUTOCAD図面を貼り付け...
-
図面上で、削除できない線について
-
AutoCAD ビューポートで3D断面...
-
JWW 文字列をコピーして他図面...
-
動きがカクカクします
-
AutoCAD図面の「ゴミ」って取れ...
-
EXCELからAUTOCADに貼り付け
-
AutoCADで線を色ごとにレイヤに...
-
jw-cadで図面を回転する法
-
Auto CADで複数オブジェクトの...
-
文字スタイル変更をスクリプト...
-
イラストレーターからパワーポ...
-
CAD 「コントロールバー」の『...
-
auto cad lt 2010 動作が重い...
-
autocad2005がすぐフリーズします
-
ExcelからAutoCADへの連携がで...
-
フリーズ画層の新規作成(AU...
-
AUTO CAD図面をメールで送ると・・
-
autoCADのレイヤーと表示順序
おすすめ情報