IT

【パワーポイント】拡張子(ファイルの種類)を変更して保存するのが面倒なのでVBAで解決 マクロを公開

PowerPointで資料作成をしているけれど、関係者に配布する時は、jpegなど別の拡張子で必要なファイルのみを渡しています。
修正が入るたびに、拡張子を変えて配布するのが面倒になってきました。

いくお
いくお

単純作業が繰り返し発生するときは、自動化できないか検討すると良いですね。マクロを作って公開しますので、使ってみてください。ボタン1つで完結します。

一般的な手法

手動でのデメリット

手動では、「保存してからファイルを利用するまで」の間で、下記に不便を感じています。これらをボタン1つで実行できるようにしていきます。

  • 保存先を指定する
  • 拡張子を選ぶ(リストから選択する)※ jpg なら jで移動はできます。
  • 保存ディレクトリに移動する

このくらい、、、と感じるかもしれませんが、繰り返し作業をするのであれば、結構、コスト(時間的にも心理的にも)はかかると思います。

また、急いでいる時は、自動化していることで有難みを感じるため、マクロを作成するコストより価値があると判断しました。

先に、手動で実施した場合の具体的手順を紹介します。

手動1:名前を付けて保存

「名前を付けて保存」の主なやり方は下記3通りあります。普段からパワーポイントを利用されている方は、ショートカットキーを利用(前者2つ)されているのではないでしょうか。

  • [Ctrl] + [Shift] + [S]  ※[Ctrl] + [S] が保存なので覚えやすい。
  • F12
  • [ファイル] → [名前を付けて保存]

下記のような画面が出るので、「保存するディレクトリの指定」「拡張子」を指定して保存します。

手動2:保存したディレクトリに移動し、ファイルを配布する

保存したファイルを利用するためには、手順1で保存したディレクトリにアクセスする必要があります。この作業が時間、労力の無駄です。

ファイルが保存してあるディレクトリに保存されますが、最近使ったアイテムやピン留めされたファイルからアクセスした場合は、エクスプローラーで開いておりません。

一時的に利用する人は、一度デスクトップに保存し、すぐにアクセスできるのでそれほど手間ではないと思うかもしれません。ですが、これではデスクトップが汚れていきます。一方、ファイルを使い終わる旅に都度、削除するのであれば、クリーンな状態を保てますが、私にとっては、それすらも手間に感じてしまうのです。

何も考えずに、tempディレクトリにどんどん保存していき、あるタイミング(定期的 or ディスクが逼迫した時などに)一気に削除してしまう方が効率的だと思います。

マクロを利用した方法

マクロ利用時のメリット

結論として、マクロを導入することで下記のメリットが得られます。

  • 実行が速い: ショートカットキー1つで実行できる
  • すぐ使える:実行後にエクスプローラーが開くのですぐに利用できる
  • 削除が簡単:指定したディレクトリ配下に作成されるので、削除が楽
  • ファイル名が分かりやすい:手動ではファイル名が「スライド_1」となります。私が作成したマクロでは、「ファイル名_1」とファイル名とスライドNoが表示されるので理解しやすいです。

では、手順を説明します。

Viausl Basic Editorを利用し、マクロを保存する

基本的なマクロの使い方は、下記の記事を参照してください。

マクロの利用方法をご存じの方は、ここはスキップしていただいて大丈夫です。

マクロを記述する

以下のコードを貼り付けてください。

もし先ほどのリンク先の順で、Sub helloworld() を記述している方は、下記の Sub saveAsJPG() に置き換えてください。

ただし、2点、利用する環境に合わせて変更してください。(★★箇所です)

  • 保存先フォルダの変更. (注意:存在しているディレクトリを指定してください。)
  • 拡張子の変更
    デフォルトではjpegになっています。[.png]であれば、PNGに置換してください
Sub saveAsJPG()
    
   '------- 対象スライドを確認 -------
   Dim sld As Slide
    Dim myYesNo As VbMsgBoxResult
    myYesNo = MsgBox("エクスポートするスライドを指定してください." & vbCrLf & "[はい]    すべてのスライド" & vbCrLf & "[いいえ] このスライドのみ", vbYesNoCancel + vbInformation)
    
    ' 対象スライドの選択
    Dim myTargetSlides
    If myYesNo = vbYes Then
        Set myTargetSlides = ActivePresentation.Slides
    ElseIf myYesNo = vbNo Then
        Set myTargetSlides = ActiveWindow.Selection.SlideRange
    Else
        ' do nothing.
        Exit Sub
    End If
            
    
   '------- 保存ディレクトリを指定 -------
   ' Directory名決定
    Dim mySaveDir As String
    mySaveDir = "C:\tmpDir\" '★★ 【要変更1】保存したいディレクトリに変更 ★★
    mySaveDir = mySaveDir & Format(Now, "yyyymmdd_hhmm") & "\"  '実行時の時間でディレクトリ名を決定
    ' Directory作成
    If Dir(mySaveDir, vbDirectory) = "" Then MkDir mySaveDir

  '------- ファイル名の作成 -------
    'PPTファイル名(拡張子なし)を取得
    Dim myFileName As String
    myFileName = Split(ActivePresentation.Name, ".")(0)
  
    '拡張子
    Const EXT = "JPG" '★★ 【要変更2】保存したい拡張子を指定 ★★
    
    For Each sld In myTargetSlides
      With sld
        .Export _
            FileName:=mySaveDir & myFileName & "_" & .SlideIndex & "." & EXT, _
            FilterName:=EXT
      End With
    Next sld
    
    
    '------- 保存先のディレクトリをopen -------
    Shell "C:\Windows\explorer.exe " & mySaveDir, vbNormalFocus '★★ 【要確認】exploerer.exeのディレクトリは正しいか ★★

End Sub

マクロを実行する

「開発」→「マクロ」をクリックします。

Alt + [F8] でも実行できます。

saveAsJPGを選択して、「実行」します。

メッセージボックスが立ち上がり、全スライドをJpegにするか、実行時に参照していたスライドのみをjpeg保存するのかを聞かれます。

実行後には、保存先にエクスプローラーが立ち上がるのですぐに結果を確認できます。

問題なければ、このファイルをすぐに利用できます。

ファイル名は、[パワーポイントのファイル名_スライドNo]で保存されます。下記は、「すべてのスライド」を選択したものですが、「このスライドのみ」の場合も、該当のスライドNoが付加されています。

まとめ

パワーポイント作成時に、別の拡張子で保存するマクロを紹介しました。

私の大学院では、パワーポイント作成後、議論に必要なスライドのみ、JPEGで共有しています。

全てのスライドを載せても構わないのですが、ディスカッションに必要なトピックのみを共有する方が効率的な場合があります。

このような場合、毎回、パワーポイントからJPEG保存して、保存先のディレクトリに移動して、ファイルを添付して、と非本質的な作業が辛くなってきました。

自動化することで、ストレスがなくなりました。

日常的に実施する作業は自動化候補として検討してみてください。

参考

今回のマクロは、ファイルに保存されてしまい、他のファイルからは利用することができません。

もし、全ファイルでマクロを利用したい場合は、下記を参考に設定してみてください。

ABOUT ME
いくお
10年以上システムエンジニアしています。 現在、数億円規模のプロジェクトリーダーを担当し、2021年には働きながらMBA取得。 これまでに得た知識、経験から役立つビジネス情報を発信していきます。 趣味の読書、運動、アウトドア、旅行なども幅広く投稿していけたらと思います。

COMMENT

メールアドレスが公開されることはありません。 が付いている欄は必須項目です