Vla-put-taborder
- 構文
- (vla-put-taborder vla-object order )
- 機能
- レイアウトのタブの順序を指定する。
- 引数
-
- vla-object … Layout のVLAオブジェクト
- order … レイアウトのタブの順序
- 戻り値
- nil
- MEMO:このプロパティは、レイアウトをタブ コントロールに表示する順序をコントロールする。タブの順序は、データベース内の全レイアウト間で固有でありシーケンシャルでなければならない。
- モデル空間タブはゼロ(0)のタブ順序でなければならない。ペーパー空間の各タブは 1 以上のタブ順序を持たなければならない。
- サンプル
(vl-load-com)
(defun c:Example_TabOrder()
;; 2 つの新しいレイアウトを作成して、アルファベット順にするレイアウトのタブ オーダーを変更するサンプル
(setq acadObj (vlax-get-acad-object))
(setq doc (vla-get-ActiveDocument acadObj))
;; レイアウトを作成
(setq Layout1 (vla-Add (vla-get-Layouts doc) "あ VIEW"))
(setq Layout2 (vla-Add (vla-get-Layouts doc) "うん VIEW"))
(setq SortIt (list)
TabCount 0)
;; 内部で五十音順に並べ替える
(while (>= (1- (vla-get-Count (vla-get-Layouts doc))) TabCount)
(setq AddedTab :vlax-false)
(setq TabName (vla-get-Name (vla-Item (vla-get-Layouts doc) TabCount)))
(if (/= (strcase TabName) "MODEL") ;; モデルはスキップ
(progn
(setq SortIt (append SortIt (list TabName))) ;; リストの先頭に追加
))
(setq TabCount (1+ TabCount))
)
;; レイアウトの名前を並べ替える
(setq SortIt (acad_strlsort SortIt)
SortCount 1)
;; タブオーダーを更新
(foreach name SortIt
(progn
(setq tempLayout (vla-Item (vla-get-Layouts doc) name))
(vla-put-TabOrder tempLayout SortCount)
(setq SortCount (1+ SortCount))
))
;;-------------------------------
;; 新しいタブオーダーを読み込み
;;-------------------------------
(setq msg "新しいタブオーダーは : \n"
TabCount 0)
(while (>= (1- (vla-get-Count (vla-get-Layouts doc))) TabCount)
(setq TabName (vla-get-Name (vla-Item (vla-get-Layouts doc) TabCount)))
(if (/= (strcase TabName) "MODEL") ;; モデルを変更
(progn
(setq TabOrder (vla-get-TabOrder (vla-Item (vla-get-Layouts doc) TabCount)))
(setq msg (strcat msg "(" (itoa TabOrder) ") " TabName "\n"))
)
)
(setq TabCount (1+ TabCount))
)
(alert msg)
)
関連事項