🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Q&A

2回答

4645閲覧

VBAでAutoCADのファイルを変換する方法

kntt

総合スコア10

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

0グッド

0クリップ

投稿2019/11/11 09:19

前提・実現したいこと

VBAでdxfファイルをdwgファイルに変換したいのですが、エラーが発生してうまくいきません。

発生している問題・エラーメッセージ

エラーは下記のとおりです。 実行時エラー'91': オブジェクト変数またはwithブロック変数が設定されていません。 該当エラー箇所:AppObj.Visible = True 'Excelアプリケーションを表示

該当のソースコード

VBA

1Option Explicit 2 3Private Sub DXFTEST() 4 5On Error Resume Next 6 7 Dim dxfFiles As Variant 8 Dim fileName As Variant 9 Dim savefname As String 10 Dim AppObj As AcadApplication 'アプリケーションオブジェクト宣言 11 Dim acadDocs As AcadDocument 12 13 dxfFiles = Application.GetOpenFilename("DXFファイル(*.dxf),*.dxf", 0, "DXFファイル選択", , True) 14 If TypeName(dxfFiles) = "Boolean" Then 15 MsgBox "DXFファイルの選択を中止しました", vbOKOnly + vbExclamation, "お知らせ" 16 Exit Sub 17 End If 18 '実行中のAutoCADアプリケーションオブジェクトの取得 19 Set AppObj = GetObject(, "AutoCAD.Application.18") 20 21 If Err Then 22    '新規AutoCADアプリケーションオブジェクトの作成(起動) 23 Set AppObj = CreateObject("AutoCAD.Application.18") 24 End If 25 26On Error GoTo 0 27 28 AppObj.Visible = True 'Excelアプリケーションを表示 29 30 For Each fileName In dxfFiles 31 Set acadDocs = AppObj.Documents.Open(fileName) '選択したファイルを開く 32    '拡張子を除く 33 savefname = Mid(fileName, 1, InStrRev(fileName, ".", -1, vbTextCompare) - 1) 34 Call acadDocs.SaveAs(savefname, ac2007_dwg) 'ドキュメント保存 35 acadDocs.Close '閉じる 36 Next 37 AppObj.Quit 'AutoCAD終了 38 39End Sub 40

補足情報(FW/ツールのバージョンなど)

エラーの内容を調べたのですが、どこをどう直せばいいかわからず・・・
教えていただけると嬉しいです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

"AutoCAD.Application.18"が違うと思います。
お使いのAUTOCADのバージョンは何ですか?
バージョンに合わせて書き換えてください。

AUTOCADヘルプ
"AutoCAD.Application.23" の場合は AutoCAD 2019 が起動されます。
"AutoCAD.Application.22" の場合は AutoCAD 2018 が起動されます。
"AutoCAD.Application.21" の場合は AutoCAD 2017 が起動されます。
"AutoCAD.Application.20.1" の場合は AutoCAD 2016 が起動されます。
"AutoCAD.Application.20.0" の場合は AutoCAD 2015 が起動されます。
"AutoCAD.Application.20" の場合は AutoCAD 2015 または AutoCAD 2016 が起動されます。
"AutoCAD.Application.19.1" の場合は AutoCAD 2014 が起動されます。
"AutoCAD.Application.19.0" の場合は AutoCAD 2013 が起動されます。
"AutoCAD.Application.19" の場合は AutoCAD 2013 または AutoCAD 2014 が起動されます。

また、参照設定も必要です。

投稿2020/04/16 12:31

ryuno_vanilla

総合スコア119

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

AppObj.Visible = True 'Excelアプリケーションを表示
AppObj というのはExcelアプリケーションではないため、エラーが出ています

これはなにか、というのを調べてみてはいかがでしょう

投稿2019/11/11 09:26

y_waiwai

総合スコア88038

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問