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

スポンサーリンク

AutoCAD環境をコードで制圧せよ:Preferences APIによる設定強制の極意

設計現場において、「バックアップが取れていない」「自動保存の間隔が長すぎて手戻りが発生した」というトラブルは、もはやエンジニアリングの範疇を超えた「管理の不備」です。

AutoCADのオプション設定は、個人の裁量に委ねるべきではありません。我々自動化エンジニアの使命は、これらの環境設定をコードによって「物理的かつ強制的に」統一し、ヒューマンエラーの余地を排除することにあります。

今回は、AutoCAD VBAを用いて `Preferences.OpenSave` オブジェクトを操作し、組織の標準設定を強固に定義する手法を伝授します。

1. なぜ「設定の直接操作」が重要なのか

多くの初心者は、UI上の「オプション」ダイアログで手動設定を済ませます。しかし、大規模な設計チームにおいてこれは自殺行為です。
VBAで制御するメリットは以下の3点に集約されます。

  • コンプライアンスの担保: 起動時に設定を再適用することで、意図せぬ変更を即座に無効化できる。
  • 環境の可搬性: PCの入れ替えやOSの再インストール時も、コードを実行するだけで「いつもの環境」が即座に完成する。
  • 属人化の排除: 「誰が設定したか」ではなく「スクリプトが設定した」状態を作り出すことで、管理責任を明確化できる。

2. 実装の要:`AcadPreferencesOpenSave` オブジェクト

AutoCADの内部設定は `Application.Preferences` を起点として階層構造になっています。今回扱う `OpenSave` は、ファイル操作に関連する心臓部です。

注意すべきは、「値を変更しただけでは、設定ファイル(Registry)に即時反映されないケースがある」という点です。また、誤った型での代入や、読み取り専用属性が有効な環境での実行はエラーを招きます。堅牢な実装には、必ずエラーハンドリングを組み込むのがプロの流儀です。

3. 実践:標準設定適用プロシージャ

以下は、組織の標準ルール(自動保存間隔を10分、バックアップ作成をON)を強制適用するためのプロダクションコードです。

‘ ——————————————————————
‘ 目的: AutoCADのOpen/Save設定を組織標準に強制更新する
‘ 備考: 実行権限エラーを考慮し、必ずOn Error GoToを実装すること
‘ ——————————————————————
Public Sub ForceCompanyStandardSettings()
Dim prefObj As AcadPreferences
Dim openSavePref As AcadPreferencesOpenSave

‘ アプリケーションオブジェクトから設定階層へアクセス
Set prefObj = Application.Preferences
Set openSavePref = prefObj.OpenSave

On Error GoTo ErrorHandler

With openSavePref
‘ 1. 自動保存の間隔を10分に設定 (SAVETIME相当)
If .AutoSaveInterval <> 10 Then
.AutoSaveInterval = 10
End If

‘ 2. バックアップファイルを作成 (ISAVEBAK相当)
If .CreateBackupFile <> True Then
.CreateBackupFile = True
End If

‘ 3. 保存形式をあえて旧形式に合わせる場合(必要に応じて)
‘ .SaveAsType = ac2018_dwg
End With

MsgBox “環境設定の同期が完了しました。”, vbInformation, “System Success”
Exit Sub

ErrorHandler:
MsgBox “設定適用中にエラーが発生しました: ” & Err.Description, vbCritical, “System Error”
End Sub

4. 運用上のアーキテクト的アドバイス

このコードをただ書くだけでは不十分です。以下の点に留意し、システムの「運用」まで設計してください。

① 起動時フック(`acaddoc.lsp` または `Application_Startup`)

上記のコードを、AutoCAD起動時に自動実行されるイベントハンドラに組み込んでください。これにより、ユーザーが意図的に設定を崩しても、次回起動時には強制的に修正されます。

② 設定の「固定化」に対する配慮

設定を強制することは、個人の作業効率を一時的に下げる可能性があります。「なぜ10分なのか」「なぜバックアップが必要なのか」という論理的根拠をドキュメント化し、社内Wiki等で周知してください。技術的な強制は、納得感があって初めて機能します。

③ データベース連携への拡張

将来的には、この設定値をローカルのコードにハードコーディングするのではなく、社内の共有サーバーにある `JSON` や `CSV` から読み込む設計に昇華させてください。そうすることで、会社全体の設計ルールが変更になった際、コードを書き換えることなく、設定ファイルを置き換えるだけで全社員の環境をアップデートできるようになります。

最後に:自動化の真髄

自動化とは、単に作業を楽にすることではありません。「標準化された正しい状態を、常に維持し続ける仕組み」を作ることです。

今回紹介した `Preferences` オブジェクトの操作は、その第一歩に過ぎません。皆さんが構築するそのツールが、設計現場の「安全な基盤」となることを期待しています。何か技術的な壁に突き当たったら、いつでもまたこの場に戻ってきてください。コードは裏切りません。

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