【入門編】【上級】AcadApplication.Preferences.OpenSaveを操作し、自動保存の間隔やバックアップ作成の有無を組織全体で強制統一 – AutoCAD VBA解析バイブル

スポンサーリンク

AutoCAD VBAの深淵へ:設定の「強制統一」で設計の安全性を極める

こんにちは。AutoCADの自動化の海を渡る皆さん。
今日は、マクロの記録という「岸辺」を離れ、AutoCADの魂とも言える「オブジェクトモデル」の深層にダイブする話をしましょう。

多くのユーザーがGUI(画面上のメニュー)から行っている「オプション設定」。これ、実はVBAから完全に掌握できることを知っていますか?

今回は、設計データという「会社の資産」を守るための「自動保存とバックアップ設定の強制統一」という、実務の現場で最も切望されるテクニックを伝授します。

1. AutoCADオブジェクトモデルの頂点:AcadApplication

AutoCAD VBAを操る上で、まず理解すべきは「ヒエラルキー(階層)」です。

  • AcadApplication: AutoCADそのもの(最上位)
  • Preferences: 設定(オプションダイアログの中身)
  • OpenSave: 「開く/保存」タブの全設定

この構造を理解すれば、あなたはAutoCADの全てをコントロール下に置くことができます。「マクロの記録」が触れない領域に、真の自動化エンジニアの戦場があるのです。

2. なぜ「強制統一」が必要なのか?

大規模プロジェクトにおいて、ある設計者はバックアップ(.bak)を作成し、ある設計者は自動保存をオフにしている……。これでは組織としての品質管理が崩壊します。

今回扱うのは、以下の2点です。

  • SAVETIME: 自動保存の間隔(分)
  • ISAVEBAK: バックアップファイル(.bak)を作成するか否か

これらをVBAで一気に書き換えるコードを書いてみましょう。

3. 実践:設定を一括適用するVBAコード

このコードをコピーして、VBAエディタ(Alt+F11)の標準モジュールに貼り付けてください。

Option Explicit

”’

”’ AutoCADの保存設定を組織標準に強制的に書き換えるプロシージャ
”’

Public Sub ApplyStandardSaveSettings()
Dim pref As AcadPreferences
Dim openSave As AcadPreferencesOpenSave

‘ AutoCAD本体からPreferencesオブジェクトを取得
Set pref = ThisDrawing.Application.Preferences

‘ その中の「開く/保存」タブの設定にアクセス
Set openSave = pref.OpenSave

‘ 【重要】ここで設定値を強制的に書き換える
With openSave
‘ 自動保存の間隔を15分に設定
.SaveInterval = 15

‘ バックアップファイルの作成を有効化 (True:作成する / False:作成しない)
.CreateBackup = True

‘ 変更が適用されたことをコンソールに出力
Debug.Print “設定の強制適用が完了しました: 間隔 ” & .SaveInterval & “分, バックアップ有効化”
End With

MsgBox “設計標準の設定を適用しました。”, vbInformation, “AutoCAD Automator”
End Sub

コードの解説

  • `ThisDrawing.Application.Preferences`: ここが全ての起点です。AutoCADが起動している限り、このオブジェクトは常にそこに存在します。
  • `With openSave`: オブジェクトの参照を省略することで、コードの可読性を高め、処理速度をわずかに向上させます。プロはこういう細部にこだわります。

4. 陥りやすい罠と解決策

初心者がよくやる失敗と、それを回避する「エンジニアの知見」を共有します。

罠1:設定が反映されない?

AutoCADの設定は、図面を開いた瞬間にメモリへ読み込まれるものがあります。VBAで設定を変更した直後に「あれ、変わってない?」と感じたら、それはAutoCAD内部のキャッシュの問題かもしれません。大規模な設定変更の後は、`Application.Update`を呼び出すか、一度図面を開き直すことで解決します。

罠2:権限の問題

会社支給のPCで、管理者権限がないとレジストリに書き込めない場合があります。`Preferences`オブジェクトはAutoCADのレジストリ設定を直接操作するため、エラーハンドリング(`On Error Resume Next`など)を適切に実装することを推奨します。

5. 次のステップへ:自動化の真髄

今回学んだ「設定の操作」は、ほんの入り口です。
これを応用すれば、「起動時に自動で最新の会社設定を適用する」という仕組みを作ることも可能です。`AcadApplication_BeginOpen`イベントなどを活用すれば、図面を開くたびに「バックアップ設定がOFFになっていないか」を監視するガードマンを作ることもできるでしょう。

「設定を自分で行う」時代は終わりました。これからは「設定をコードで定義する」時代です。

皆さんの設計環境が、より堅牢で、より創造的なものになることを願っています。
また次回の技術講義でお会いしましょう。質問があれば、いつでもコメント欄で待っていますよ。


執筆:AutoCAD開発アーキテクトより

タイトルとURLをコピーしました