AutoCADの自動化について、VBAとLISPのどちらを活用すべきかお悩みではないでしょうか。
また、2つの違いがわからず困っている人もいるでしょう。
そこでこの記事では、AutoCADに搭載されたLISP・VBAという2種類の自動化機能の違いについてわかりやすくまとめました。2つの機能を連携する方法も解説しているので、AutoCADの効率化を図る参考にしてみてください。
AutoCADのLISPとは

AutoCADのLISP(正式名称はAutoLISP)は、AutoCAD用に開発されたプログラミング言語を利用して自動化の仕組みをつくり出せる機能です。
「管理>アプリケーション>Visual LISP エディタ」に格納されており、LISP専用のウィンドウを立ち上げることによってAutoCAD内でプログラミングができます。
AutoCADのコマンドのほとんどに対応しているほか、条件などを細かく設定しながら自動化の仕組みをつくり出せるのが魅力です。より詳しくAutoCADのLISPの概要を知りたい方は、以下の記事をチェックしてみてください。
AutoCADのVBAとは

AutoCADのVBAとは、前述したLISPと同じようにAutoCADの自動化の仕組みを構築できるプログラミング言語のひとつです。
「管理>アプリケーション>Visual Basic Editor」に格納されており、VBA専用のウィンドウを立ち上げることで、AutoCAD内でVBAを構築できます。
なお、VBAはもともとExcel・PowerPointといったMicrosoft Officeの機能を拡張するために用いられていました。ただ仕組み化の汎用性が高いため、AutoCADにも搭載。現在では、LISPと並び効率よく自動化の仕組みをつくり出せる機能として利用されています。
また、AutoCADのVBAについてより詳しい概要を知りたい方は、以下の記事がおすすめです。
AutoCADのLISPとVBAとの違い
AutoCADのLISPとVBAは、どちらも「プログラミング言語」を利用し「自動化の仕組みを構築」できる機能です。では、いったい何が違うのでしょうか。
はじめて自動化にチャレンジする人向けに、2つの違いを項目に分けて解説します。
導入手順

まずAutoCADのLISPは、AutoCADをインストールした時点から機能が搭載されています。
一方でVBAは、コマンドのアイコンはあるものの、初期状態では機能を利用できません。
AutoCAD上でVBAを使うためには、Autodesk公式サイトから専用モジュールを導入する必要があります。導入手順が違う点に注意してください。
AutoCADコマンドの対応範囲
AutoCADのLISPとVBAは、対応できるコマンドの範囲に違いがあります。
まずAutoCADのLISPは、AutoCAD向けに開発されたプログラミング言語であることから、広いコマンドに対応できます。一方でVBAは、3DCAD向けの描画に対応できないほか、膨大なデータのリアルタイム処理ができません。
またAutoCADのVBAは、Excelといった他ソフトとの連携に強く、表計算ソフトと組み合わせた設計の効率化に役立ちます。対してLISPはAutoCAD内でのプログラミングに強いことから、外部データの取り込みはできるものの、直接的に外部ソフトを操作する関数が少ないです。
LISP・VBAにはそれぞれ対応範囲の違いがあるため、自身の目的に合わせて利用する自動化の機能を選びましょう。
UIの使いやすさ

AutoCADのLISPは上画像のようにシンプルな画面構成であることから、初心者でも手軽に自動化に取り組めるのがポイントです。操作に迷う心配がないため、関数の学習など構築の面に力を注げます。
一方でAutoCADのVBAは、もともとMicrosoft OfficeのソフトでVBAを利用している人にとって使いやすいUIとなっています。画面構成はAutoCAD上でも同じであるため、直感的に自動化の仕組みを構築できるでしょう。

ただし両方の機能に初めて触れる人の場合、シンプルさを求めるなら、LISPのほうが簡便です。
Autodeskから利用する関数のリファレンスも公開されているため、UIの面では「初心者はLISP」「VBA経験者はVBA」がおすすめかもしれません。
処理スピード
AutoCADのLISPとVBAでは、処理スピードが「LISP>VBA」だと言われています。
特に大容量のデータを処理させたい場合にはLISPのほうが軽量であることから、低スペックのパソコンでも使いやすいのが利点です。
なお処理スピードが変わる理由として、もともとのつくられ方が違うのはもちろんですが、対応できる機能の範囲の広さの違いが関係しています。
AutoCADのLISPはAutoCADに特化している一方で、VBAはAutoCAD以外のソフトの機能も搭載されています。機能数が多い分、高負荷がかかりやすいため、処理スピードに違いが出てしまうのかもしれません。
AutoCADのLISPとVBAはどちらがおすすめ?
「AutoCADのLISPとVBAのどちらを導入したらいいの?」とお悩みの人向けに、4つの条件でそれぞれおすすめなほうを整理しました。あくまで一例ですが、LISPとVBAの活用を判断する参考にしてみてください。
初心者にはAutoCADのLISPがおすすめ
AutoCADのLISPとVBAの両方を使ったことがない初心者は、シンプルなUIで構成されているLISPにチャレンジするのがおすすめです。
画面構成がわかりやすいことから、プログラミング言語や構文の勉強をするだけですぐに自動化の仕組みをつくり出せるようになります。
Microsoft OfficeのVBA経験者はVBAがおすすめ
今までにMicrosoft Office製品でVBAを利用した経験がある人は、効率よくAutoCADを自動化するために、VBAを活用するのがおすすめです。
プログラミングのルールはソフトを問わず同一ですので、自身の知識を活かしながらAutoCADを自動化できます。
低スペックパソコンでの利用はLISPがおすすめ
現在AutoCADを導入しているパソコンのスペックが、AutoCADを利用するために必要なギリギリの値だという方は、処理スピードが早いLISPを利用するのがおすすめです。
特に大容量のデータを処理させる場合には、VBAよりもLISPのほうがスムーズに処理できます。
なお、推奨スペックを満たしているほか、まだスペックに余裕があるという場合にはLISPとVBAのどちらでもスムーズな処理が可能です。
外部ソフトとの連携はVBAがおすすめ
AutoCADの自動化だけではなく、Microsoft Office製品や、ほかのCADソフトなどでも自動化をしたいならVBAを活用するのがおすすめです。
VBAは導入されたソフトだけではなく、外部ソフト(主にMicrosoft製品)との連携にも強いため、データのやり取りを効率化できます。例えば、ExcelのデータをAutoCADに読み込ませる、書き出すといった対応もできるので、VBAを利用するのが便利です。
AutoCADのLISPとVBAを連携する方法

AutoCADのLISPとVBAは、それぞれ個別に利用するのが一般的ですが、2つの機能を連携することも可能です。
例えば、LISPで作成した「円を表示するコード」をVBAに反映してみましょう。
まずはLISPで次のデータを作成しました。
(setq center (list 100 100))
(setq radius 1000)
Sub Lisp()
‘LISPファイルをVBAに読み込む
ThisDrawing.SendCommand “(” & “load” & “””ディレクトリのURL“”” & “)” & vbCr
End Sub
上記の手順を踏むことによって、AutoCADに「円形」が表示されました。
AutoCADのLISPとVBAをセミナー講習で学ぼう

AutoCADのLISPとVBAのどちらを取り入れるべきか迷っている方は、活用機能を判断するために、それぞれの使い方を学べるセミナーに参加してみましょう。次の目的で2つの機能を比較するためです。
- 機能の使いやすさ
- 実践的な活用を実現できそうか
なかでも「実践的に学べるAutoCAD自動化セミナー」は、プロの講師からAutoCADのLISP・VBA・アクションマクロなどの自動化の機能を網羅的に学べるのが魅力です。初心者はもちろん中級者、上級者も役立つ知識やスキルを学べます。
東京・名古屋・大阪会場での受講のほか、他県にいる人でも利用しやすいライブウェビナー、参加のタイミングが合わない人向けのeラーニングも提供しているため、詳しくは以下のリンクをチェックしてみてください。
AutoCADのLISPとVBAについてまとめ
AutoCADの自動化に取り組みたいなら、まずはLISPとVBAのどちらを活用するか決めることが重要です。もちろん両方を利用して自動化することも可能ですが、学習量を考えるなら、まずはひとつに絞った方がよいでしょう。
AutoCADのLISPおよびVBAは独学できる教材が豊富であるほか、セミナー講習も開催されています。機能について学習したい人、構築の知識を学びたい方は、ぜひ気になる方法で学習をスタートしてみてください。