AutoCADからExcelへテーブルをエクスポートするためのLISPプログラム
AutoCADテーブルオブジェクトではないテーブルをExcelにエクスポートするためのLISP
admin - 19.05.2026 23:20
admin - 19.05.2026 23:20
AutoCAD から Excel へ表を書き出す LISP 関数

以下のような Excel ファイルが生成されます。

当フォーラムで共有された、AutoCAD から Excel へ表をエクスポート(書き出し)する関数は、メンバーのみなさんから大きな関心を集めました。しかし、共有されたコードから AutoLISP ファイルを手動で作成することに苦労しているユーザーや、様々な理由でエラーに遭遇しているユーザーが見受けられました。そのため、スムーズかつトラブルなくダウンロードできるように、このファイルをダウンロードセクションで公開することにいたしました。
この関数は、Line(線分)、Lwpolyline、または Polyline オブジェクトによってセルが定義され、Text、Mtext、Field(フィールド)、または属性(アトリビュート)を含む Block オブジェクトでデータが構成されている表から、Excel ファイルへ直接データを書き出します。
行と列は均一である必要はなく、互い違いのセルや結合されたセルもサポートしています。
複数行の MText オブジェクトや、同じセル内に複数のデータオブジェクトが垂直に並んでいる場合は、Excel のセル内へ複数行のコンテンツとしてデータが転送されます。セル内の同じ水平線上(Y 座標が等しく、X 座標が異なる)に複数のデータオブジェクトが存在する場合、そのうちの 1 つのオブジェクトのみが書き込まれます。この場合、同じライン上のオブジェクトを単一のセル内に統合することはユーザーの責任となります。

画像に示されているように、属性を持つ INSERT(ブロック参照)オブジェクト、ならびに TEXT、MTEXT、FIELD オブジェクトが表の「データオブジェクト」として認識されます。
表の境界(セルの枠線)を定義するオブジェクトは、Line、Polyline、または Lwpolyline タイプを使用できます。
データエリア(セル)は、単一のセルで構成することも、結合されたセルを含めることも可能です。結合されたセルの場合、Excel の範囲ロジックに沿って、長方形の定義エリアが適用されます。
表の要素が選択される際、四方が枠線で囲まれていないオブジェクト(つまり、セル内に完全に収まっていないオブジェクト)は表から除外され、処理されません。画像内では、列文字の A、B、C、D、および行番号の 1 から 9 は、境界線で完全に囲まれていないため、データとして処理されません。
同じく画像に示されているように、セルの境界を定義する線は、必ずしも互いに交差している必要はありません。ある線がセルの境界として認識されるためには、データオブジェクトの挿入基点を通過する直交線と、4 方向のいずれかで直交して交差しているだけで十分です。
これらの指定された条件下では、当然ながら、セルの境界を定義する線は「直交(モード)」である必要があります。行または列の線が直交していない場合、プログラムはその間に他のセルが存在すると仮定してしまい、表が正しく生成されなくなります。
Excel ファイル内では、セルの結合が行われ、枠線が作成されます。
すべてのデータは、Excel の「標準」書式でエクスポートされます。
配置やフォントの書式設定、および生成された Excel ファイルを目的の名前と場所で保存する作業は、ユーザーに委ねられます。
表オブジェクトの選択が完了した後、Excel が起動して必要な接続が確立されるまでに、目に見えるほどの遅延(タイムラグ)が発生することがありますが、これは正常な動作ですのでパニックにならないでください。関数が終了して AutoCAD のコマンドラインに戻ったら、タスクバーにある開いた Excel アイコンをクリックして Excel に切り替え、ファイルに対して必要な操作を行うことができます。
ダウンロードするファイル名: AcxL.vLx
作成者: cizimokulu.com
説明: VLX(仮想LISP)形式のAutoLISPアプリケーションファイル
タグ: AutoCADテーブルオブジェクトではないテーブルをExcelにエクスポートするためのLISP
コメント一覧 :
コメントはまだありません





目次
