Excel VBAを利用したプレゼンテーションファイルの整理方法

この記事では、Excel VBAを利用して、複数のプレゼンテーションファイルをプロジェクトごとに整理する方法について詳しく説明します。具体的なコード例、その詳細な解説、さらには応用例を3つ以上掲載し、日常業務の自動化をサポートします。

目次

Excel VBAの基本

Excel VBA(Visual Basic for Applications)は、Microsoft Excelに組み込まれたプログラミング言語です。これを用いると、単純作業の自動化だけでなく、高度なデータ分析やレポート作成も可能になります。

そもそも、どこにVBAコードを書いて、どう実行すれば良いのか分からない場合は、以下の記事をご参照ください。

VBAを利用したプレゼンテーションファイルの整理基本

業務中、多くのプレゼンテーションファイルを扱う場合、整理が難しくなることがよくあります。VBAを利用することで、これらのファイルをプロジェクトごとに自動整理することができます。

Sub OrganizePresentationFiles()
    Dim FolderPath As String
    Dim FileName As String
    Dim ProjectName As String
    ' フォルダパスの指定
    FolderPath = "C:\YourFolder\"
    FileName = Dir(FolderPath & "*.pptx")
    ' ファイルを検索して整理
    Do While FileName <> ""
        ProjectName = Mid(FileName, 1, 5)  ' 例: ファイル名の最初の5文字をプロジェクト名とする
        MkDir FolderPath & ProjectName  ' プロジェクト名のフォルダを作成
        Name FolderPath & FileName As FolderPath & ProjectName & "\" & FileName  ' ファイルを移動
        FileName = Dir
    Loop
End Sub

コードの詳細解説

上記のVBAコードは、指定されたフォルダ内のプレゼンテーションファイルを検索し、それをプロジェクト名に基づいてサブフォルダに移動させるものです。ここでは、ファイル名の最初の5文字をプロジェクト名としていますが、業務の実情に合わせて変更することができます。

応用例

VBAの活用は無限大です。以下は、プレゼンテーションファイルの整理を更に効果的に行うための応用例を3つ紹介します。

1. ファイル更新日時での整理

ファイルの更新日時に基づいて、年度ごとのフォルダに整理する方法です。

Sub OrganizeByDate()
    Dim FolderPath As String
    Dim FileName As String
    Dim YearUpdated As String
    Dim FileDateTime As Date
    ' フォルダパスの指定
    FolderPath = "C:\YourFolder\"
    FileName = Dir(FolderPath & "*.pptx")
    ' ファイルの更新日時を基に整理
    Do While FileName <> ""
        FileDateTime = FileDateTime(FolderPath & FileName)
        YearUpdated = Year(FileDateTime)
        MkDir FolderPath & YearUpdated
        Name FolderPath & FileName As FolderPath & YearUpdated & "\" & FileName
        FileName = Dir
    Loop
End Sub

2. サイズ別の整理

プレゼンテーションのサイズ(MB)に応じて、指定されたフォルダに整理します。

Sub OrganizeBySize()
    Dim FolderPath As String
    Dim FileName As String
    Dim FileSize As Long
    ' フォルダパスの指定
    FolderPath = "C:\YourFolder\"
    FileName = Dir(FolderPath & "*.pptx")
    ' ファイルのサイズを基に整理
    Do While FileName <> ""
        FileSize = FileLen(FolderPath & FileName) / 1024 / 1024
        If FileSize < 5 Then
            MkDir FolderPath & "SmallFiles"
            Name FolderPath & FileName As FolderPath & "SmallFiles\" & FileName
        Else
            MkDir FolderPath & "LargeFiles"
            Name FolderPath & FileName As FolderPath & "LargeFiles\" & FileName
        End If
        FileName = Dir
    Loop
End Sub

3. テキスト内容に基づく整理

プレゼンテーション内の特定のテキスト内容に基づいて、関連フォルダに整理します。

Sub OrganizeByTextContent()
    ' この例では、PowerPointのオブジェクトモデルを利用しています。
    ' PowerPointへの参照設定が必要です。
    Dim FolderPath As String
    Dim FileName As String
    Dim PptApp As Object, PptPresentation As Object
    Dim Slide As Object, Shape As Object
    Dim FoundText As Boolean
    ' フォルダパスの指定
    FolderPath = "C:\YourFolder\"
    FileName = Dir(FolderPath & "*.pptx")
    Set PptApp = CreateObject("PowerPoint.Application")
    ' ファイルのテキスト内容を基に整理
    Do While FileName <> ""
        FoundText = False
        Set PptPresentation = PptApp.Presentations.Open(FolderPath & FileName)
        For Each Slide In PptPresentation.Slides
            For Each Shape In Slide.Shapes
                If Shape.HasTextFrame Then
                    If
 InStr(Shape.TextFrame.TextRange.Text, "TargetText") > 0 Then
                        FoundText = True
                        Exit For
                    End If
                End If
            Next
            If FoundText Then Exit For
        Next
        PptPresentation.Close
        If FoundText Then
            MkDir FolderPath & "ContainsTargetText"
            Name FolderPath & FileName As FolderPath & "ContainsTargetText\" & FileName
        End If
        FileName = Dir
    Loop
    PptApp.Quit
    Set PptApp = Nothing
End Sub

まとめ

Excel VBAを使用して、効率的にプレゼンテーションファイルを整理する方法を学びました。このようにVBAは、日常の業務を効率化する強力なツールとして利用できます。上記のコードや応用例を参考に、自身の業務に合わせてカスタマイズしてみてください。

VBAも良いけどパワークエリも良い

VBAの解説をしてきましたが、VBAは正直煩雑でメンテナンス性が悪いです。最近はモダンExcelと呼ばれるパワークエリやパワーピボットへのシフトが進んできています。本サイトでもパワークエリの特集をしており、サンプルデータを含む全11回の学習コンテンツでパワークエリを習得することができます。

クリックするとパワークエリの全11講座が表示されます。

パワーピボットの記事はありません。興味がある場合は、書籍で学んでみてください

コメント

コメントする

目次