1. TOP
  2. ブログ
  3. VBAでここまでできる! AutoCADカスタマイズ 第2回

VBAでここまでできる! AutoCADカスタマイズ 第2回

第2回「Hello, CAD」

こんにちは。キャパの風間です。

第2回目となります、VBAによるAutoCADカスタマイズ講座です。

本日は、ダイアログ(画面)を用いたカスタマイズ方法をご紹介します。

それでは早速VBAのエディタを開きます。方法はわかりますよね?(わからない方は第1回目を復習です!)
https://stg.capa.co.jp/archives/2542

そこで、AutoCAD Objectsというフォルダを右クリックしてください。出てきたウィンドウから [挿入] → [ユーザーフォーム] を選択してください。
User1

User2
UserForm1という画面が出てきた事をご確認ください。

それでは早速、画面を作りましょう。まずはテキストボックスの配置です。ツールボックス画面から[テキスト ボックス]を選択してください。
User6

3つテキストボックスを作ります。上、左下、右下と配置してください。順番は後ほど重要となります。また、ラベルで「文字」「X座標」「Y座標」と書きましょう。ラベルは[テキスト ボックス]のひとつ左となりです。
User4

次は[ボタン]を作ります。ツールボックス画面から[コマンド ボタン]を選択してください。
User5

1つボタンを追加して、名前を「OK」にしましょう。
User7

画面が出来たら、画面のOKボタンをダブルクリックしてください。VBAのエディタが開かれ、構文が出来ていることを確認できます。
User8

ここで、前回のサンプルをコピペしましょう。
User9

メッセージボックス(MsgBox (“Hello, World!”))は不要なので、削除してください。そして、ここで入力した情報が反映できるよう以下の4点を修正します。

修正1
dInsPoint(0) = 0

dInsPoint(0) = TextBox2.Text

修正2
dInsPoint(1) = 0

dInsPoint(1) = TextBox3.Text

修正3
Call ThisDrawing.ModelSpace.AddText(“Hello, World”, dInsPoint(), 100)

Call ThisDrawing.ModelSpace.AddText(TextBox1.Text, dInsPoint(), 100)

修正4
最後の行(End Sub)の直前に以下の文を追加します。これがない場合は、モデル空間上に即時反映されません。ご注意ください。
Call Application.Update

User13

Private Sub CommandButton1_Click()
Dim dInsPoint(0 To 2) As Double

dInsPoint(0) = TextBox2.Text
dInsPoint(1) = TextBox3.Text
dInsPoint(2) = 0

Call ThisDrawing.ModelSpace.AddText(TextBox1.Text, dInsPoint(), 100)

Call Application.Update
End Sub

それでは、早速実行しましょう。方法はわかりますよね?(わからない方は第1回目を復習です!)
https://stg.capa.co.jp/archives/2542
User10

文字に「Hello, World!」と入力してください。X座標とY座標は「0」にします。
User12

User11

[OK]ボタンを押します。
User14
(モデル空間に文字が表示されます)

つづけて、文字に「Hello, CAD!」と再入力してください。Y座標は「110」にして[OK]ボタンを押します。
User15
(モデル空間に文字が追加で表示されます)

いかがでしょうか。
このようにマクロを使っていくことで、個人や会社のルールにあったカスタマイズをすることが出来ます。

便利ですよね。

それではまた、次回に続きます。

 

 

株式会社キャパでは、アプリの企画・開発についてご相談を承っています。
アプリを作りたいので、具体的な提案が欲しい。頭の中にあるアイデアを本当に実現できるのか知りたい。予算内に収まるのか?
などのお客様のご相談に、親身に応じます。
https://stg.capa.co.jp/CorporateSite_LP_B/

    カテゴリ一覧

    PAGE TOP