この記事では、Excel VBAを使用してスクリーンショットを撮影日別に整理する方法について詳しく説明します。初心者でも理解しやすいように具体的なコード例とその解説、さらに実用的な応用例を3つ以上紹介します。
Excel VBAの基本
Excel VBA(Visual Basic for Applications)は、Microsoft Excelに組み込まれたプログラミング言語です。これを用いると、単純作業の自動化だけでなく、高度なデータ分析やレポート作成も可能になります。
そもそも、どこにVBAコードを書いて、どう実行すれば良いのか分からない場合は、以下の記事をご参照ください。

基本的なスクリーンショットの整理
Excel VBAを利用することで、自動的にスクリーンショットを日付別に整理することが可能です。以下はその基本的なコードです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
Sub SortScreenshotsByDate() Dim path As String Dim pic As Picture Dim dateTaken As String ' スクリーンショット保存フォルダを指定 path = "C:\Screenshots\" ' シートを指定 Set ws = ThisWorkbook.Sheets("Sheet1") For Each pic In ws.Pictures ' 日付情報を取得 dateTaken = pic.Name ' 新しいフォルダを作成(存在しない場合) If Not Dir(path & dateTaken, vbDirectory) Then MkDir path & dateTaken End If ' スクリーンショットを新しいフォルダに移動 pic.Cut pic.Paste Destination:=path & dateTaken Next pic End Sub |
このコードは、指定したフォルダ内のスクリーンショットを、撮影日に基づいて新しいフォルダに整理するものです。スクリーンショットの名前に日付情報が含まれている場合に有効です。
コードの詳細解説
1. **path変数**にスクリーンショットが保存されているフォルダのパスを指定します。
2. **wsオブジェクト**で操作対象のシートを指定します。
3. **For Each文**でシート内のすべての画像に対して処理を繰り返します。
4. 画像の名前から撮影日の情報(**dateTaken**)を取得します。
5. **Dir関数**と**MkDir関数**を使って、該当の日付のフォルダが存在しない場合に新しいフォルダを作成します。
6. 最後に、**Cutメソッド**と**Pasteメソッド**を使って、スクリーンショットを新しい日付フォルダに移動します。
応用例
1. 撮影時間帯によって整理する
スクリーンショットを撮影した時間帯(午前、午後、夜)によって整理する場合のコード例です。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
Sub SortScreenshotsByTimePeriod() ' 中略 Dim timeTaken As String Dim period As String ' 時間帯情報を取得 timeTaken = Hour(pic.Name) If timeTaken < 12 Then period = "Morning" ElseIf timeTaken < 18 Then period = "Afternoon" Else period = "Evening" End If ' 中略 End Sub |
2. 撮影者ごとに整理する
撮影者の名前がファイル名に含まれている場合、その名前で整理する方法のコード例です。
1 2 3 4 5 6 7 8 9 10 |
Sub SortScreenshotsByTaker() ' 中略 Dim taker As String ' 撮影者情報を取得 taker = Left(pic.Name, InStr(1, pic.Name, "_") - 1) ' 中略 End Sub |
3. 使用したアプリケーションごとに整理する
スクリーンショットがどのアプリケーションから撮影されたかに基づいて整理する場合のコード例です。
1 2 3 4 5 6 7 8 9 10 |
Sub SortScreenshotsByApplication() ' 中略 Dim app As String ' アプリ情報を取得 app = Mid(pic.Name, InStr(1, pic.Name, "_") + 1, 10) ' 中略 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)
パワーピボットの記事はありません。興味がある場合は、書籍で学んでみてください
コメント