セキュリティカメラの映像は日常的に多くのデータが蓄積されます。これらの映像データを手動で整理するのは時間がかかるうえに、ミスのリスクも高まります。この記事では、Excel VBAを使用してセキュリティカメラの映像を日付やイベント別に自動的に整理する方法を解説します。
Excel VBAの基本
Excel VBA(Visual Basic for Applications)は、Microsoft Excelに組み込まれたプログラミング言語です。これを用いると、単純作業の自動化だけでなく、高度なデータ分析やレポート作成も可能になります。
そもそも、どこにVBAコードを書いて、どう実行すれば良いのか分からない場合は、以下の記事をご参照ください。

基本的な処理の流れ
1. セキュリティカメラから出力された映像ファイルの一覧を取得します。
2. 各映像ファイルの日付やイベント情報を取得します。
3. Excelに映像ファイルの一覧とその情報を入力します。
4. VBAを使用して、映像ファイルを日付やイベント別に整理します。
基本的なコード
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
Sub OrganizeFootage() Dim LastRow As Long Dim i As Long 'エクセルシートの最後の行を取得 LastRow = ThisWorkbook.Sheets("Sheet1").Cells(ThisWorkbook.Sheets("Sheet1").Rows.Count, "A").End(xlUp).Row For i = 2 To LastRow 'ファイルの日付やイベント情報を基に映像を整理 '(具体的な整理の方法は、使用者のニーズに合わせてカスタマイズすること) Next i End Sub |
コードの詳細解説
このコードは、ExcelのSheet1に映像ファイルの一覧が入力されていると仮定しています。A列には映像ファイルのパス、B列には日付、C列にはイベント情報が入力されていると想定しています。
– Dim LastRow As Long
と Dim i As Long
は、変数を宣言しています。LastRow
はエクセルシートの最後の行を取得するための変数、i
はループ処理で使用する変数です。
– LastRow = ...
で、Sheet1のA列の最後の行番号を取得しています。
– For i = 2 To LastRow
のループ内で、各映像ファイルを整理します。具体的な整理の方法は、使用者のニーズに合わせてカスタマイズする必要があります。
応用例
映像ファイルを月別のフォルダに自動分類
セキュリティカメラの映像を月別に整理することで、特定の月の映像を迅速に検索することが可能になります。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
Sub SortByMonth() Dim FilePath As String, FileDate As Date Dim MonthFolder As String FilePath = ThisWorkbook.Sheets("Sheet1").Cells(i, 1).Value FileDate = ThisWorkbook.Sheets("Sheet1").Cells(i, 2).Value MonthFolder = Format(FileDate, "yyyyMM") '月別のフォルダにファイルを移動 Name FilePath As "C:\Footage\" & MonthFolder & "\" & FilePath End Sub |
特定のイベントが発生した時の映像だけを別のフォルダに整理
例えば、セキュリティカメラが動体検知をした際の映像だけを特定のフォルダに自動分類することができます。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
Sub SortByEvent() Dim FilePath As String, EventInfo As String FilePath = ThisWorkbook.Sheets("Sheet1").Cells(i, 1).Value EventInfo = ThisWorkbook.Sheets("Sheet1").Cells(i, 3).Value If EventInfo = "動体検知" Then '特定のフォルダにファイルを移動 Name FilePath As "C:\Footage\Detected\" & FilePath End If End Sub |
映像の長さが一定以上のものだけを別のフォルダに整理
短い映像は何も起こっていない可能性が高いため、長さが一定以上の映像だけを特定のフォルダに整理することで、重要な映像だけを迅速に検索することができます。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
Sub SortByLength() Dim FilePath As String, VideoLength As Long FilePath = ThisWorkbook.Sheets("Sheet1").Cells(i, 1).Value VideoLength = ThisWorkbook.Sheets("Sheet1").Cells(i, 4).Value If VideoLength >= 10 Then '10分以上の映像 '特定のフォルダにファイルを移動 Name FilePath As "C:\Footage\Long\" & FilePath End If End Sub |
まとめ
Excel VBAを活用することで、大量のセキュリティカメラの映像データを効率的に整理することができます。この記事で紹介した方法
や応用例を参考に、自身のニーズに合わせてカスタマイズしてみてください。
VBAも良いけどパワークエリも良い
VBAの解説をしてきましたが、VBAは正直煩雑でメンテナンス性が悪いです。最近はモダンExcelと呼ばれるパワークエリやパワーピボットへのシフトが進んできています。本サイトでもパワークエリの特集をしており、サンプルデータを含む全11回の学習コンテンツでパワークエリを習得することができます。
クリックするとパワークエリの全11講座が表示されます。
-
【初心者向け】パワークエリ入門:ETLツールを使ってエクセルデータを簡単に整形・統合しよう!(1/11)
-
【実践ガイド】パワークエリでデータ収集:Excel、CSV、PDF、Webデータを簡単に取り込む方法をマスターしよう!(2/11)
-
【総力特集】パワークエリで列操作をマスター:選択、変更、移動、削除、結合、分割の詳細解説&実践テクニック!(3/11)
-
【徹底解説】パワークエリで行操作をマスター!フィルター・保持・削除テクニックと練習用エクセルで実践学習(4/11)
-
パワークエリでデータクレンジング: 文字列結合、0埋め、テキスト関数をマスター(5/11)
-
パワークエリで四捨五入、切り捨て、切り上げをマスターする方法(6/11)
-
パワークエリで効率的なデータグループ化を実現する方法(7/11)
-
パワークエリで時間と日付の計算をマスター!便利な関数を使って効率アップ(8/11)
-
パワークエリで条件別集計をマスターする方法(9/11)
-
Excelパワークエリでクロス集計表とデータベース形式を瞬時に変換する方法(10/11)
-
Excelパワークエリ入門: 効率的なデータ整理をマスターしよう!(11/11)
パワーピボットの記事はありません。興味がある場合は、書籍で学んでみてください
コメント