【入門編】【初心者向け】UNCパスを用いたネットワーク共有上のDWGファイルを安全に開く方法 – AutoCAD VBA解析バイブル

スポンサーリンク

こんにちは!AutoCAD VBAの世界へようこそ。
マクロの記録ボタンを押すだけのステップから抜け出し、「いよいよ本格的な自動化ツールを自分で作りたい!」と思っているあなたへ。

今回は、業務効率化の第一歩として避けて通れない「ネットワーク上の図面ファイルを安全に開く方法」について解説します。

「社内の共有サーバーにある図面をVBAから開きたいけれど、なんだかエラーになってしまう……」
そんな壁にぶつかったことはありませんか?

ここをクリアすれば、あなたのAutoCAD VBAスキルは確実に実用レベルへとステップアップします。優しく丁寧に解説していきますので、一緒に一つずつマスターしていきましょう!

—

なぜ「ドライブレター(Xドライブ等)」の指定は危険なのか?

会社のネットワークサーバー上にあるフォルダを、自分のパソコンで `X:¥図面フォルダ¥` のように、アルファベットを割り当てて使っている方は多いでしょう。これを「ドライブレター」と呼びます。

VBAのプログラムでファイルを開くとき、ついつい次のように書きたくなりますよね。

‘ 【避けるべき書き方】ドライブレターを使ったパス
Dim targetFile As String
targetFile = “X:\Projects\2024\DWG-001.dwg”

一見、何の問題もなさそうに見えますが、これが実務の現場ではトラブルの元になります。

  • 人によってドライブの割り当てが違う:

あなたにとっては `X:ドライブ` でも、隣の席の同僚のパソコンでは `Z:ドライブ` に割り当てられているかもしれません。プログラムを共有した途端、「ファイルが見つかりません」というエラーが起きてしまいます。

  • ネットワーク切断による不安定さ:

一時的な回線の切断などでドライブの接続が切れると、パスそのものがロストしてしまいます。

そこで登場するのが、今回の主役である「UNCパス」です。

—

UNCパスとは? 魔法の呪文「`\サーバー名\共有フォルダ名`」

UNCパス(Universal Naming Convention)とは、ドライブレターを使わずに、ネットワーク上の場所を直接指し示す形式のことです。

具体的には、次のような書き方をします。

> `\\ServerName\ShareFolder\Projects\2024\DWG-001.dwg`

  • `\\` から始まる: ネットワーク上のアドレスであることを示します。
  • サーバー名(ホスト名): どのコンピューター(またはNAS)にあるのかを指定します。
  • 共有フォルダ名: 公開されているフォルダ名を指定します。

これを使えば、どのパソコンから実行しても、ネットワーク上の全く同じファイルをピンポイントで正確に掴みに行くことができます。ネットワーク共有の図面を扱う自動化では、このUNCパスを使うのがプロの常識であり、絶対的な鉄則です。

—

【実践】UNCパスで安全に図面を開くVBAコード

それでは、実際にAutoCAD VBAを使って、ネットワーク上のDWGファイルを安全に開くコードを見てみましょう。

今回は、初心者の方でも安心して動かせるよう、エラー処理(もしファイルがなかったらどうするか?)も組み込んだ実用的なコードを用意しました。

Sub OpenDrawingWithUNC()
‘ 1. 変数の宣言
Dim targetPath As String
Dim docColl As AcadDocuments
Dim targetDoc As AcadDocument

On Error GoTo ErrorHandler ‘ エラーが発生した時の逃げ道を準備

‘ 2. UNCパスを変数に格納する
‘ ※実際の社内サーバーのパスに書き換えてお使いください
targetPath = “\\fileserver01\drawing_data\2024\Sample_Drawing.dwg”

‘ 3. ファイルの存在確認(非常に重要なステップ!)
If Dir(targetPath) = “” Then
MsgBox “指定された場所にファイルが見つかりませんでした。” & vbCrLf & _
“パスを確認してください:” & vbCrLf & targetPath, vbCritical, “ファイルエラー”
Exit Sub
End If

‘ 4. AutoCADの図面コレクションを取得し、ファイルを開く
Set docColl = ThisDrawing.Application.Documents
Set targetDoc = docColl.Open(targetPath)

‘ 5. 開いた図面をアクティブにする(必要に応じて)
targetDoc.Activate

MsgBox “図面を正常に開きました!”, vbInformation, “成功”
Exit Sub

ErrorHandler:
‘ 予期せぬエラーが起きた場合の処理
MsgBox “エラー番号: ” & Err.Number & vbCrLf & _
“エラー内容: ” & Err.Description, vbCritical, “システムエラー”
End Sub

コードのここがポイント!

1. `Dir(targetPath)` による事前チェック
いきなりファイルを開こうとすると、ファイルが存在しない場合にAutoCADがフリーズしたり、強制終了したりするリスクがあります。`Dir`関数を使って、あらかじめファイルがそこに実在するか確認する「慎重さ」が、安定稼働するマクロの秘訣です。
2. `ThisDrawing.Application.Documents.Open`
AutoCAD VBAで外部の図面を開くための正式な構文です。これによって、バックグラウンドまたは新ウィンドウで安全にDWGが読み込まれます。
3. エラーハンドリング (`On Error GoTo`)
ネットワーク越しにファイルをやり取りする場合、一時的な回線の不具合や権限エラーはつきものです。エラーが起きたときにプログラムがフリーズせず、メッセージを出して優しく終了する仕組みは必須です。

—

初心者がハマりやすい「3つの罠」と対策

最後に、現場でよくある失敗と、そのスマートな回避法をお伝えします。

罠1:円マーク(¥ / \)の書き忘れ・エスケープ

プログラム内でパスを書くとき、バックスラッシュ(日本語環境では半角の「¥マーク」)の数や抜けでエラーになることがよくあります。

  • 対策: パスは必ずダブルクォーテーション (`”`) で囲み、コピペするときに文字化け(`\` が `¥` になる現象)が起きていないか確認しましょう。

罠2:ファイルを開く権限がない(アクセス権エラー)

コードは完璧なのに、「権限がありません」というエラーが出ることがあります。

  • 対策: VBAの問題ではなく、Windowsのネットワーク権限(共有設定やNTFSアクセス権)の問題です。Excelやエクスプローラーから手動でそのUNCパスにアクセスし、該当ファイルを開けるかまず確認してください。

罠3:すでに誰かがそのファイルを開いている(排他制御)

ネットワーク上の図面は、他の人がすでに開いている場合、通常は「読み取り専用(ReadOnly)」でしか開けません。

  • 対策: もし書き込み目的で開く必要がある場合は、エラー処理で「現在他のユーザーが使用中です」と判定できるように工夫すると、よりプロっぽいツールになります。

—

まとめ

今回は、UNCパスを使ってネットワーク上のDWGファイルを安全に開く方法を解説しました。

  • サーバー上のファイル指定には、環境に左右されない「UNCパス (`\\サーバー名\共有名\…)」を使う。
  • いきなり開くのではなく、`Dir`関数でファイルの存在を事前にチェックする。
  • 万が一のネットワーク切断やエラーに備えて、エラーハンドリングを仕込んでおく。

ここをクリアすれば、あなたの作るAutoCADマクロは、単なる「個人の時短おもちゃ」から、チーム全体・会社全体を支える「堅牢な業務システム」へと生まれ変わります。

「ここをクリアすれば、AutoCAD VBAの基本はバッチリですよ!」
ぜひ、あなたの手元の環境でもUNCパスを使ったコードを試してみてくださいね。次回の解説もお楽しみに!

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