ズメーン導入の第一歩:1万5千点の図面登録(PDF)をExcel VBAで乗り切った方法
はじめに
図面を中心に、すべての情報をつなぐ——。
FactBaseの「ズメーン」、いいですよね。
ついに私の勤め先でも導入されることになりました。
これでどこからでも図面を確認できるぞ、図面の更新管理も楽になるぞ、関連資料だって図面に紐づければ見失うことはない。と、胸を躍らせていたわけです。
しかし、導入の第一歩である「図面のPDF登録」が、思いのほか大きな壁でした。
ズメーンの魅力である「図面に関連する資料の一括管理」も、「組立図と部品図のすべてのつながりが見える」も、すべては一枚の図面から始まります。
逆に言えば、「最初の一枚目の図面(PDF)」がなければ、関連資料を取り込むことも、組立図の登録もできないのです。
見積業務から始まる新規の仕事であれば、何の苦労もありません。
しかし私の勤め先では、既存の部品点数だけでざっと1万5千点ほど。
これらすべての「最初の一枚目の図面(PDF)」を用意しなければなりません。
しかもその間にも、親会社からは設変に伴う最新図面の配布が続きます。
とにかく、すべての部品の「最初の一枚目の図面(PDF)」をズメーンに登録することが、担当者としての急務となりました。
そこで私は、Excel VBAを使って社内の製品マスタから仮図面PDFを自動生成するマクロを組みました。
これは、図面がなくてもズメーンを始められる方法であり、さらにはAIによる文字認識精度を高める工夫でもあります。
本記事では、ズメーン導入の初期障壁を乗り越えるための、現場発の実践的アプローチをご紹介します。
1. 現場の課題
既存部品数:1万5千点以上
1万5千点以上の製品図面、関連資料が紙で管理されていました。
設変による図面更新の頻度
お客様や取引先の設変連絡や関連資料の配布は毎日のようにあります。
ズメーン立ち上げ中だろうとおかまいなしです。1万5千点の図面をスキャンしてズメーンに登録している間にも、図面は増え、差し替えられていくのが現実です。
2. 解決アプローチ:Excel VBAによる仮図面PDF生成
製品マスタの構造と活用
弊社では図面は紙媒体で管理されていましたが、日々の生産管理業務に関しては、ExcelやAccessで情報処理がされています。
つまり、製品・部品のリストはすでにExcelやAccess内にデータとして存在していたのです。
そこで思いついたのが、製品・部品マスタから仮図面を生成(PDF)し、それをズメーンにアップロードするという方法です。
ズメーンの特性に関する補足
- ズメーンは「図面を基点にして関連資料を管理」する仕組みです。
- 図面が未登録の状態では、関連資料のアップロード先が存在しません。
- 仮でもいいので図面を登録しておけば、それがアップロードの起点になります。
- 毎日のように図面や資料の更新がある現場では、「仮図面で先に始める」ことが、ズメーン活用の鍵になります。
3. 最低限必要なExcelのSheet構成
以下の3シートを用意します。
Sheet(HOME)
Sheet(製品・部品マスタ)
Sheet(仮図面)
Sheet(HOME)
- マクロの起動ボタンを配置
- 処理範囲や分割設定などのパラメータを入力
Sheet(製品・部品マスタ)
製品・部品の情報を格納するシートです。最低限必要なフィールドは以下の通りです:
ID
図番
品名
部品名
仮図面生成日
注意点(2025/10/19時点)
ズメーンの組図画面では「部品名」が表示されません。
品名が親部品で統一されている場合は、品名 + 部品名のように結合しておくと、後から見たときに分かりやすくなります。
Sheet(仮図面)
- 図枠テンプレートを配置
- 図番・品名・部品名・生成日などをセルに配置
- 書体やセルサイズを統一し、AI OCRの認識精度を向上
4. VBAマクロの処理概要
-
処理範囲の指定(HOMEシート)
以下の3つの数値を入力します:- 開始ポイント:製品マスタの何行目から処理を開始するか(例:1)
- 終了ポイント:何行目まで処理するか(例:15000)
- 分割枚数:何枚ごとにPDFをフォルダにまとめるか(例:25)
-
製品マスタから情報を取得
指定範囲の行から、図番・品名・部品名などを読み込みます。 -
仮図面テンプレートに転記
Sheet(仮図面)の図枠に情報を転記し、仮図面を生成します。 -
フォルダの作成と管理
PDF保存用のフォルダを自動生成します。フォルダ名の形式は以下の通り:仮図面フォルダ_開始点_終了点_生成日指定枚数(例:25枚)に達すると、新しいフォルダを追加作成し、以降のPDFをそちらに保存します。
-
ファイル名の自動生成
図番やIDを元に、命名規則に沿ったファイル名を生成します。 -
PDFとして保存
Excelの印刷機能を使って、仮図面をPDF形式で保存します。 -
処理ログの記録(任意)
生成されたPDFのファイル名や処理日時を、HOMEシートまたは別シートに記録可能です。
5. AI文字認識精度向上の副次効果
仮図面がもたらすOCR精度の向上
弊社には、手書きの図面も多く存在していました。
そのため、AI OCR機能でも読み取れない文字が多数ありました。
しかし、Excelで作成した仮図面であれば:
- 書体や文字サイズが統一されている
- PDFの解像度・品質も安定している
その結果、AIによる文字認識精度が大幅に向上し、図番などの自動登録がスムーズになりました。
6. まとめ
- ズメーン導入の初期障壁は「図面データ(PDF等)がないこと」
- Excel VBAによる仮PDF生成は、現場からの突破口
- 「図面があるから始められる」ではなく「始めるために図面を作る」という発想の転換
- 仮図面は、AI OCR精度の向上にも貢献
もしあなたの現場でも「図面データがないから始められない」と悩んでいるなら、
このアプローチをぜひ参考にしてみてください。
Excel VBAは、現場の知恵を形にするための、強力な武器になります。
サンプルコード
Sub Export仮図面PDF_25枚ごとにフォルダ分割()
Dim wsTemplate As Worksheet
Set wsTemplate = ThisWorkbook.Sheets("仮図面")
Dim wsMaster As Worksheet
Set wsMaster = ThisWorkbook.Sheets("製品・部品マスタ")
Dim wsHome As Worksheet
Set wsHome = ThisWorkbook.Sheets("HOME")
Dim savePath As String
savePath = ThisWorkbook.Path & "\"
Dim baseFolderName As String
baseFolderName = "仮図面フォルダ"
Dim startRow As Long
Dim endRow As Long
Dim batchSize As Long
Dim currentRow As Long
Dim batchCount As Long
Dim folderIndex As Long
Dim folderName As String
Dim currentFolder As String
Dim todayStr As String
Dim pdfFileName As String
Dim pdfFullPath As String
' HOMEシートから設定値を取得(B2:開始行, B3:終了行, B4:分割枚数)
startRow = wsHome.Cells(2, 2).Value
endRow = wsHome.Cells(3, 2).Value
batchSize = wsHome.Cells(4, 2).Value
todayStr = Format(Date, "yyyymmdd")
folderIndex = 0
batchCount = 0
For currentRow = startRow To endRow
' フォルダ切り替え判定
If batchCount Mod batchSize = 0 Then
folderIndex = folderIndex + 1
folderName = baseFolderName & "_" & startRow & "_" & endRow & "_" & todayStr & "_" & folderIndex
currentFolder = savePath & folderName & "\"
If Dir(currentFolder, vbDirectory) = "" Then
MkDir currentFolder
End If
End If
' 製品マスタから情報を取得
Dim id As String, 図番 As String, 品名 As String, 部品名 As String
id = wsMaster.Cells(currentRow, 1).Value
図番 = wsMaster.Cells(currentRow, 2).Value
品名 = wsMaster.Cells(currentRow, 3).Value
部品名 = wsMaster.Cells(currentRow, 4).Value
' 生成日時を取得(現在時刻)
Dim 生成日 As String
生成日 = Format(Now, "yyyy/mm/dd hh:nn:ss")
' 仮図面シートに転記(Cells形式で記述)
wsTemplate.Cells(2, 2).Value = 図番 ' 例:B2に図番
wsTemplate.Cells(3, 2).Value = 品名 ' 例:B3に品名
wsTemplate.Cells(4, 2).Value = 部品名 ' 例:B4に部品名
wsTemplate.Cells(5, 2).Value = 生成日 ' 例:B5に生成日時
' ファイル名の生成と保存
pdfFileName = 図番 & "_" & 部品名 & ".pdf"
pdfFullPath = currentFolder & pdfFileName
wsTemplate.ExportAsFixedFormat Type:=xlTypePDF, Filename:=pdfFullPath, Quality:=xlQualityStandard
batchCount = batchCount + 1
Next currentRow
MsgBox "PDF出力が完了しました。", vbInformation
End Sub