Excel VBAでPowerPointのスライド数をファイル名に追加する方法

Excel VBAは、Excelの機能を拡張し、独自の機能を実現するためのプログラミングツールです。特に、繁重な作業や反復的な作業を自動化する場面でその力を発揮します。今回の記事では、Excel VBAを使って、プレゼンテーションのスライド数をファイル名に自動的に追加する方法について詳しく解説します。

目次

Excel VBAの基本

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

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

VBAとは

VBA(Visual Basic for Applications)は、Microsoft Office製品を拡張するためのプログラム言語です。Excel, Word, PowerPointなどのOfficeアプリケーションでマクロを作成する際に使用されます。

プレゼンテーションのスライド数をファイル名に追加する基本的な手法

まずは、基本的な手法から見ていきましょう。

1. マクロを開始する

Excel VBAエディタを開き、新しいモジュールを挿入します。

2. コードを記述

以下のコードは、PowerPointのスライド数を取得し、その数をファイル名の最後に追加するものです。


Sub AddSlideCountToFileName()
    Dim pptApp As Object
    Dim pptPresentation As Object
    Dim slideCount As Integer
    Dim origFileName As String
    Dim newFileName As String

    ' PowerPointアプリケーションを開く
    Set pptApp = CreateObject("PowerPoint.Application")
    Set pptPresentation = pptApp.ActivePresentation

    ' スライド数を取得
    slideCount = pptPresentation.Slides.Count

    ' 元のファイル名を取得
    origFileName = pptPresentation.FullName

    ' 新しいファイル名を生成
    newFileName = Replace(origFileName, ".pptx", "_" & slideCount & "slides.pptx")

    ' ファイル名を変更
    pptPresentation.SaveAs newFileName
End Sub

3. コードの解説

このコードは、PowerPointアプリケーションを操作するためのオブジェクトを生成しています。その後、アクティブなプレゼンテーションからスライド数を取得し、取得したスライド数を現在のファイル名の最後に追加しています。

応用例

1. 特定のフォルダ内の全てのPowerPointファイルに対して実行

あるフォルダ内にある全てのPowerPointファイルに対して上述の処理を適用したい場合のコードです。


Sub ApplyToAllFilesInFolder()
    Dim folderPath As String
    Dim pptFile As String
    Dim pptApp As Object
    Dim pptPresentation As Object
    ' フォルダのパスを指定
    folderPath = "C:\path\to\your\folder\"
    pptFile = Dir(folderPath & "*.pptx")
    ' PowerPointアプリケーションを開く
    Set pptApp = CreateObject("PowerPoint.Application")
    While pptFile <> ""
        Set pptPresentation = pptApp.Presentations.Open(folderPath & pptFile)
        Call AddSlideCountToFileName ' 上述のマクロを呼び出す
        pptFile = Dir
    Wend
End Sub

2. スライド数が一定以上の場合のみファイル名変更

スライド数が例えば50以上の場合のみ、ファイル名にスライド数を追加するコードです。


Sub AddSlideCountIfOver50()
    Dim pptApp As Object
    Dim pptPresentation As Object
    Dim slideCount As Integer

    ' PowerPointアプリケーションを開く
    Set pptApp = CreateObject("PowerPoint.Application")
    Set pptPresentation = pptApp.ActivePresentation

    ' スライド数を取得
    slideCount = pptPresentation.Slides.Count

    ' スライド数が50以上の場合、ファイル名変更処理を実行
    If slideCount >= 50 Then
        Call AddSlideCountToFileName
    End If
End Sub

3. ファイル名変更後に確認メッセージを表示

ファイル名を変更した後に、成功メッセージを表示するコード例です。


Sub AddSlideCountAndNotify()
    Call AddSlideCountToFileName
    MsgBox "ファイル名を変更しました。", vbInformation, "完了"
End Sub

まとめ

Excel VBAを使用して、PowerPointのプレゼンテーションのスライド数をファイル名に追加する方法を紹介しました。基本的な処理から応用的な処理まで、VBAの力を使えば様々な自動化やカスタマイズが可能です。この記事があなたの業務効率化や学習に役立てば幸いです。

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

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

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

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

コメント

コメントする

目次