こんにちは!AutoCADの自動化の世界へようこそ。
日々、図面と格闘していると、一番背筋が凍る瞬間ってどんなときですか?そう、「突然のPCフリーズ」や「ブルースクリーン」、そして「保存し忘れたままの電源落ち」ですよね。何時間もかけて描き込んだ血肉のようなデータが、一瞬で消え去る絶望感……。
今回は、そんなエンジニアの悪夢をテクノロジーの力で完全にハックし、「PCが物理的に破壊されても、図面データだけは1バイトたりとも失われない鉄壁の自動保存システム」をAutoCAD VBAで構築する方法を授けましょう。
ここをクリアすれば、単なる「マクロの記録」の使い手から、組織のインフラまでを最適化する「真のAutoCAD自動化エンジニア」への階段を確実に登ることができますよ。それでは、熱い知見を込めて一緒に紐解いていきましょう!
—
1. なぜ「ローカルの自動保存」はリスクの塊なのか?
AutoCADのデフォルト設定では、自動保存(いわゆる `.sv$` ファイル)の保存先は、Cドライブ内のユーザープロファイル配下(例: `C:\Users\<ユーザー名>\AppData\Local\Temp\` など)に設定されています。
もちろん、これでも動くには動きます。しかし、現場のプロとしてこれは「時限爆弾を抱えている状態」だと言わざるを得ません。
- PCのハードウェア故障(マザーボード破損、SSDの突然死など)が起きれば、Cドライブのデータは二度と取り出せません。
- 個人のPCローカル環境に依存しているため、バックアップポリシーの網から漏れやすい。
ならばどうするか? AutoCAD起動時に、自動保存のパスを強制的に安全なネットワークドライブ(ファイルサーバーやOneDrive、SharePointの同期フォルダなど)へ書き換えてしまえばいいのです。
しかも、これを人間の手ではなく、VBAを使って自動化します。
—
2. 核心に迫る:AutoCADオブジェクトモデルの階層構造
AutoCAD VBAを操る上で、絶対に避けて通れないのが「オブジェクトモデルの階層構造」です。ここを理解すると、AutoCADの内部世界が手に取るように見えてきます。
今回のテーマである「自動保存パスの変更」は、以下のルートでアクセスします。
AcadApplication (大元の大ボス:AutoCADアプリ全体)
┗ Preferences (環境設定の管理ルーム)
┗ Files (ファイルタブの各種パス設定)
┗ AutoSavePath (自動保存先のフォルダパスというプロパティ)
これをVBAのコードで表現すると、たったこれだけのシンプルな一行になります。
ThisDrawing.Application.Preferences.Files.AutoSavePath = “N:\MyFolder\AutoCAD_AutoSave”
※ `ThisDrawing` は今開いている図面を指しますが、アプリケーション全体の設定(Preferences)を触るため、実質的に `AcadApplication` を操作していることになります。
—
3. 【実践】ネットワークパスへ自動変更する最強マクロ
それでは、実務の現場でそのままコピペして使える、堅牢なVBAコードを公開します。
このコードは、単にパスを変えるだけでなく、「指定したネットワークフォルダが存在するかチェックし、なければ自動作成する(エラーハンドリング)」というプロの技を組み込んでいます。
実装コード
Sub SetNetworkAutoSavePath()
‘ —————————————————————–
‘ 目的: 自動保存先をネットワークドライブ等へ強制変更し、リスクをゼロにする
‘ —————————————————————–
On Error GoTo ErrorHandler
Dim cApp As AcadApplication
Dim cPrefs As AcadPreferences
Dim cFiles As AcadPreferencesFiles
Dim targetPath As String
‘ 1. アプリケーションおよび設定オブジェクトの取得
Set cApp = ThisDrawing.Application
Set cPrefs = cApp.Preferences
Set cFiles = cPrefs.Files
‘ 2. 保存先となるネットワークパスの定義
‘ ※環境に合わせて、実際のサーバーパスや共有フォルダのパスに変更してください
targetPath = “ServerName\UserData\” & Environ(“USERNAME”) & “\AutoCAD_AutoSave\”
‘ 3. フォルダが存在するかチェックし、なければVBAの機能で作成する
If Dir(targetPath, vbDirectory) = “” Then
‘ ネットワークの階層構造に合わせてフォルダを作成
MkDir targetPath
End If
‘ 4. AutoCADの環境設定(Filesタブ)のAutoSavePathを書き換える
cFiles.AutoSavePath = targetPath
‘ 5. 成功メッセージの通知
MsgBox “自動保存先を安全な領域に変更しました。” & vbCrLf & _
“保存先: ” & targetPath, vbInformation, “設定完了”
Exit Sub
ErrorHandler:
‘ ネットワークが切断されている場合などの例外処理
MsgBox “エラーが発生しました。ネットワーク接続を確認してください。” & vbCrLf & _
“エラー番号: ” & Err.Number & vbCrLf & _
“詳細: ” & Err.Description, vbCritical, “設定失敗”
End Sub
コードの解説:ここがエンジニアのこだわりポイント!
1. `Environ(“USERNAME”)` の活用:
Windowsのログインユーザー名を取得し、動的にパスを生成しています。これにより、1つのマクロを全社員共通のテンプレートとして配り、そのまま全員の個人フォルダへ紐付けることが可能です。
2. `Dir` 関数と `MkDir` による事前チェック:
いきなりパスを設定しようとすると、フォルダが存在しない場合にAutoCADがエラーを吐いて停止します。コード内で「フォルダがなければ作る」という自律的な処理を入れることで、マクロの堅牢性を一気に高めています。
—
4. 組織的運用への布石:立ち上げ時に自動実行させるには?
さて、このマクロを手動で毎回ポチポチ実行するようでは、一流の自動化エンジニアとは言えません。「うっかり実行し忘れてPCが壊れた」では笑えないからです。
これを「AutoCADを起動した瞬間、または図面を開いた瞬間に、裏側で自動的に走らせる」仕組みに昇華させましょう。
ここで登場するのが、AutoCAD VBAの特殊イベントプロシージャである `acaddoc.dvb`(または `AcadStartup`) です。
1. `ThisDrawing` ではなく `ThisDocument` のイベントを使う
通常のマクロは標準モジュールに書きますが、自動実行させる場合は、プロジェクト内の `ThisDrawing` (またはVBAIDE上のドキュメントイベント)にコードを仕込みます。
‘ ThisDrawing モジュールに記述
Private Sub AcadDocument_NewDocument()
‘ 新規図面作成時に自動実行
Call SetNetworkAutoSavePath
End Sub
Private Sub AcadDocument_Open()
‘ 既存図面を開いた時に自動実行
Call SetNetworkAutoSavePath
End Sub
これらを組み込むことで、ユーザーが意識することすらないまま、AutoCADが立ち上がった瞬間に自動保存先が安全なサーバーへと切り替わります。組織全体に展開すれば、誰一人としてリスクを意識する必要のない「完全自動の安全網」が完成するのです。
—
5. 陥りやすい罠とトラブルシューティング
最後に、このカスタマイズを実務で導入する際につまずきやすいポイントを先回りして解説しておきます。ここを知っていればもう怖いものはありません。
- Q. 「パスが見つかりません」というエラー(Err 76)が出る
- 原因: 指定したネットワークドライブ(例: `Nドライブ` や `\\ServerName\…`)に、そのPCからアクセス権がない、あるいはVPN接続が切れている状態です。
- 対策: エラーハンドラー(`ErrorHandler`)が機能するようにし、ネットワーク未接続時はローカルのデフォルト設定にフォールバック(退避)するような条件分岐を加えておくと、さらに完璧です。
- Q. チーム全体にこの設定を強制配布したい
- 対策: 上記のVBAコードを組み込んだ図面テンプレートファイル(`.dwt`)を作成し、社内の標準テンプレートとして全PCに配布するのが最も手っ取り早く、確実な組織展開の手法です。
—
まとめ
今回は、`AcadApplication.Preferences.Files.AutoSavePath` を駆使して、自動保存先をネットワークドライブへ強制リダイレクトし、リスクをゼロにする手法を解説しました。
- AutoCADのオブジェクトモデルの階層(Application > Preferences > Files)を理解した。
- VBAから環境設定を動的に書き換えるプログラムの実装方法を習得した。
- 単なるコード書きに留まらず、フォルダの自動生成やエラーハンドリングといった「実務に耐えうる堅牢性」を手に入れた。
ここをクリアできたあなたなら、もうAutoCAD VBAの基礎はバッチリです!ぜひ自分の環境や部署のサーバーパスに合わせてコードを調整し、明日からの設計業務をより安全でストレスフリーなものにアップデートしてくださいね。
それでは、また次の極限の知見でお会いしましょう!
