写真台帳とは、現場で撮影した写真を、写真番号・撮影内容・場所・工種・コメントなどと対応させて整理する帳票です。
工事写真、点検写真、現場写真、施工写真、出来形写真、状況写真など、呼び方や使う場面はさまざまですが、基本的な目的は共通しています。
それは、あとから見た人が「この写真は何を示しているのか」を確認できるようにすることです。
写真だけが大量に並んでいても、どこで撮った写真なのか、何の作業状況なのか、どのコメントと対応しているのかが分からなければ、提出書類としても、社内確認用の資料としても扱いにくくなります。
この記事では、写真台帳をExcelで作る前に確認したい基本を整理します。あわせて、写真台帳づくりの最初の一歩として使える、指定フォルダ内の写真ファイル名をExcelへ一覧化するVBAコードも掲載します。
いきなり写真を貼り付ける前に、まず写真番号とファイル名の一覧を作っておくだけでも、後工程のミスはかなり減らせます。
写真台帳は「写真」と「説明」を対応させる帳票
写真台帳で大切なのは、写真をきれいに貼ることだけではありません。
むしろ実務上は、写真と説明文の対応が崩れないことの方が重要です。
たとえば、同じような現場写真が何十枚もある場合、ファイル名だけを見ても内容を判断できないことがあります。撮影日、工種、測点、写真タイトル、コメントなどを整理しておかないと、後で修正するときに「この写真はどの説明のものだったか」が分からなくなります。
写真台帳に入りやすい項目は、次のようなものです。
- 写真番号
- 写真ファイル名
- 撮影日
- 工種
- 測点
- 写真タイトル
- コメント
- 備考
すべての写真台帳でこれらが必要になるわけではありません。社内様式、発注者様式、工事内容、点検内容によって必要項目は変わります。
ただ、どの様式であっても「写真」と「説明」を対応させる、という考え方は共通です。
Excelで写真台帳を作るときに起きやすい問題
写真台帳はExcelでも作れます。手元の写真を貼り付け、横や下に説明文を入れれば、簡単な台帳としては成立します。
ただし、実務で使う場合は、いくつか注意点があります。
まず、画像サイズです。写真の縦横比が違うと、手作業で貼り付けた写真の大きさがバラバラになりやすくなります。見た目を揃えようとして無理に引き伸ばすと、写真が歪みます。
次に、印刷範囲です。画面上ではきれいに見えていても、印刷プレビューやPDF出力で写真の位置がずれることがあります。画像がずれる原因については、別記事で整理しています。
また、PDF出力時には、余白、ページ倍率、改ページ、プリンタ設定などの影響でレイアウトが崩れることもあります。Excelで作った写真台帳を提出用に使う場合は、PDF出力後の見え方も必ず確認しておく必要があります。
さらに、写真ファイル名の管理も重要です。写真を貼ったあとにファイル名を変えたり、フォルダを移動したりすると、どの写真を貼ったのか追いにくくなります。
いきなり貼り付ける前に写真ファイル名一覧を作る
写真台帳を作るとき、最初から写真をExcelに貼り付け始めると、途中で混乱しやすくなります。
おすすめは、まず写真ファイル名の一覧を作ることです。
一覧を作ると、次のような整理がしやすくなります。
- 写真の枚数を確認できる
- 連番を付けられる
- 不要写真を見つけやすい
- 写真タイトルやコメントを後から入力しやすい
- 写真台帳へ貼る順番を整理しやすい
写真台帳の作成は、見た目のレイアウト作業に見えますが、実際にはデータ整理の作業でもあります。
「写真番号」「ファイル名」「コメント」の対応を先に作っておくと、後でExcelに貼り付けるときも、写真と説明文のずれを防ぎやすくなります。
すぐ使えるVBAコード:写真ファイル名を一覧化する
ここから、指定フォルダ内の jpg / jpeg / png ファイル名をExcelに一覧化するVBAコードを紹介します。
このコードは、写真台帳そのものを完成させるものではありません。写真台帳を作る前の準備として、写真番号、ファイル名、備考欄の土台を作るためのサンプルです。
以下のコードは、写真台帳作成を補助するためのサンプルです。利用するExcelのバージョン、シート構成、写真ファイル名、運用ルールによって調整が必要になる場合があります。
実務ファイルで実行する前に、必ずファイルのバックアップを取ってください。まずはテスト用ブックとテスト用写真で動作確認してください。マクロを使うには、Excel側でマクロを有効化する必要があります。
Option Explicit
Sub 写真ファイル名一覧を作成する()
Dim folderPath As String
Dim files() As String
Dim fileCount As Long
Dim ws As Worksheet
Dim i As Long
folderPath = SelectPhotoFolder()
If folderPath = "" Then Exit Sub
files = GetPhotoFiles(folderPath, fileCount)
If fileCount = 0 Then
MsgBox "対象フォルダに jpg / jpeg / png ファイルが見つかりませんでした。", vbExclamation
Exit Sub
End If
SortStringArray files, fileCount
Set ws = PreparePhotoListSheet("写真一覧")
ws.Range("A1").Value = "写真番号"
ws.Range("B1").Value = "ファイル名"
ws.Range("C1").Value = "備考"
For i = 1 To fileCount
ws.Cells(i + 1, 1).Value = i
ws.Cells(i + 1, 2).Value = files(i)
ws.Cells(i + 1, 3).Value = ""
Next i
ws.Columns("A:C").AutoFit
MsgBox "写真ファイル名一覧を作成しました。" & vbCrLf & _
"出力件数: " & fileCount & " 件", vbInformation
End Sub
Private Function SelectPhotoFolder() As String
With Application.FileDialog(msoFileDialogFolderPicker)
.Title = "写真フォルダを選択してください"
.AllowMultiSelect = False
If .Show <> -1 Then
SelectPhotoFolder = ""
Else
SelectPhotoFolder = .SelectedItems(1)
End If
End With
End Function
Private Function GetPhotoFiles(ByVal folderPath As String, ByRef fileCount As Long) As String()
Dim tempFiles() As String
Dim fileName As String
Dim ext As String
ReDim tempFiles(1 To 1)
fileCount = 0
fileName = Dir(folderPath & "\*.*")
Do While fileName <> ""
ext = LCase$(Mid$(fileName, InStrRev(fileName, ".") + 1))
If ext = "jpg" Or ext = "jpeg" Or ext = "png" Then
fileCount = fileCount + 1
ReDim Preserve tempFiles(1 To fileCount)
tempFiles(fileCount) = fileName
End If
fileName = Dir()
Loop
GetPhotoFiles = tempFiles
End Function
Private Sub SortStringArray(ByRef arr() As String, ByVal itemCount As Long)
Dim i As Long
Dim j As Long
Dim tmp As String
If itemCount <= 1 Then Exit Sub
For i = 1 To itemCount - 1
For j = i + 1 To itemCount
If StrComp(arr(i), arr(j), vbTextCompare) > 0 Then
tmp = arr(i)
arr(i) = arr(j)
arr(j) = tmp
End If
Next j
Next i
End Sub
Private Function PreparePhotoListSheet(ByVal sheetName As String) As Worksheet
Dim ws As Worksheet
On Error Resume Next
Set ws = ThisWorkbook.Worksheets(sheetName)
On Error GoTo 0
If ws Is Nothing Then
Set ws = ThisWorkbook.Worksheets.Add
ws.Name = sheetName
End If
ws.Cells.Clear
Set PreparePhotoListSheet = ws
End Function
コードの使い方
このコードを使う場合は、Excelで新しいブックを用意し、VBAエディターを開いて標準モジュールに貼り付けます。
大まかな流れは次のとおりです。
- Excelを開く
- テスト用ブックを用意する
Alt + F11でVBAエディターを開く- 標準モジュールを追加する
- 上記コードを貼り付ける
- Excel側でマクロを有効化する
写真ファイル名一覧を作成するを実行する- 写真フォルダを選択する
実行すると、ブック内に 写真一覧 というシートが作られ、写真番号、ファイル名、備考欄が出力されます。
この一覧をもとに、写真タイトル、コメント、工種、測点、撮影日などの項目を追加していくと、写真台帳の下準備として使いやすくなります。
一覧化してから写真台帳へ進むメリット
写真台帳作成では、写真を貼る作業に意識が向きがちです。
しかし、実務上のミスは「貼り付けそのもの」よりも、写真と説明文の対応が崩れるところで起きやすいです。
たとえば、写真だけ先に貼って、あとからコメントを入力していくと、途中で1枚抜けたときに、以降のコメントがずれることがあります。
写真番号とファイル名の一覧を先に作っておけば、どの写真にどの説明を付けるかを表として管理できます。これは工事写真、点検写真、現場写真、公共工事書類の整理でも役立ちます。
Excelで作る場合に調整が必要なポイント
今回のコードは、写真ファイル名を一覧化するためのものです。実際の写真台帳として使うには、ここから項目を追加していく必要があります。
よく追加する項目は次のようなものです。
- 撮影日
- 工種
- 測点
- 写真タイトル
- コメント
- 備考
- 台帳に出力する順番
また、写真台帳へ展開するときは、写真枠の位置、画像サイズ、印刷範囲、余白、PDF出力時の見え方を確認する必要があります。
Excelでは、セル幅や行高、結合セル、プリンタ設定によって見た目が変わることがあります。画面上で整っていても、PDFにすると崩れる場合があります。PDF出力時のレイアウト崩れも確認が必要です。
提出前に確認したいこと
写真台帳を提出用成果品として使う場合は、Excelで作れたことだけをもって完了にしない方が安全です。
提出前には、少なくとも次の点を確認します。
- 写真とコメントが対応しているか
- 写真番号が抜けていないか
- 同じ写真を重複して貼っていないか
- 不要な写真が混ざっていないか
- 写真タイトルや工種に誤りがないか
- 印刷範囲が正しいか
- PDF出力後に写真や文字が切れていないか
- 発注者様式、社内様式、写真管理ルールと整合しているか
ExcelやVBAは作業を軽くするための道具です。提出物としての妥当性を判断するのは、人間側の確認作業です。
免責と注意事項
この記事で紹介したVBAコードは、写真台帳作成を補助するためのサンプルです。
利用するExcelのバージョン、シート構成、結合セル、印刷範囲、画像サイズ、余白設定、写真ファイル名の付け方によって、調整が必要になる場合があります。
実務ファイルで実行する前に、必ずバックアップを取ってください。まずはテスト用ブックとテスト用写真で動作確認してください。マクロを使うには、Excel側でマクロを有効化する必要があります。
提出用成果品として使う場合は、写真とコメントの対応、印刷結果、PDF出力結果、発注者・社内様式との整合を必ず人間が確認してください。
コード利用による損害、データ破損、提出物不備等について、維持DXは責任を負いません。
まとめ
写真台帳は、写真を並べるだけの帳票ではありません。
写真番号、ファイル名、撮影内容、コメント、備考などを対応させ、後から見ても内容を確認できるようにするための整理表です。
Excelで写真台帳を作る場合は、いきなり写真を貼り始めるより、まず写真ファイル名の一覧を作る方が安全です。写真一覧を作っておけば、写真番号、コメント、工種、測点などを整理しやすくなります。
維持DXでは、写真台帳、Excel帳票、成果品整理、VBAによる自動化など、現場実務で発生しやすい小さな作業負担を軽くする考え方を整理しています。
写真台帳づくりでも、最初から大きな仕組みを作る必要はありません。まずは写真ファイル名を一覧化し、写真と説明文の対応を崩さないところから始めるのが、実務的にはかなり効きます。
■ダウンロード
無料ダウンロード(Excel)
維持DXでは建設コンサルタント実務を軽くするツールを無料で公開しています。
以下のフォームにメールアドレスを入力すると、ダウンロードURLを自動返信メールでお送りします。
ご注意
ダウンロードURLは、入力いただいたメールアドレス宛に自動返信で送信されます。
ダウンロードしたExcelでマクロが実行できない場合は、
右クリック → プロパティ →「許可する」 をチェック後、再度開いてください。
Windowsのセキュリティ機能により、初回実行時にマクロがブロックされる場合があります。

