IT

【パワーポイント】マクロを全ファイルで利用できる方法。アドインでマクロ共有

パワーポイントにマクロを作成したけれど、他のファイルでも利用したい。
出来る方法はないの?

いくお
いくお

パワーポイントで作成したマクロは、通常作成したファイルに保存されています。
便利なマクロは、他のファイルでも使えるように設定が必要となります。

今回、他のどのパワーポイントのファイルでも実行できるように解説します。

全ファイルでマクロを利用する方法

結論として、マクロをアドインとして利用します。
アドインという言葉を聞きなれないかもしれませんが、一般的には、「ソフトウェアの標準機能に加えて、特定のユーザー向けにプログラムを追加する」ことを言います。

機能を拡張するものと思ってください。

現状では、カスタムUIを利用するのがよいかと思いますが、zip化したりと少し手間なので、別の方法を紹介します。

手順としては、以下となります。

  1. 利用したいマクロを作成する
  2. マクロをアドインとして保存する
  3. アドインにマクロを登録する
  4. アドインから呼び出す

順に説明します。

利用したいマクロを作成する

すでにマクロを作成済みの方は、次のステップへ進んでください。

マクロの利用方法が分からない方は、下記を参照ください。

なお、今回は、下記の記事で紹介した「JPEG保存」をサンプルとして紹介します。

マクロをアドインとして保存する

JEPG保存するマクロを以下のように編集します。
Sub saveAsJPGの中身は変えておりません。Auto_Open、Auto_Closeを追加しているだけです。この記述により、起動時にアドインに設定、終了時にアドインから削除することができます。新規ファイルを起動時したタイミングで設定されるので全ファイルで活用できます。

Sub Auto_Open()
    
    With Application.CommandBars("Menu Bar")
    
        With .Controls.Add(Type:=msoControlButton)
            .Caption = "Save_as_JPEG"
            .OnAction = "saveAsJPG"
            .TooltipText = "Save as JPEG"
            .FaceId = 3
        End With
        
    End With
    
End Sub

Sub Auto_Close()
    
    Application.CommandBars("Menu Bar").Controls("Save_as_JPEG").Delete
End Sub

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

上記マクロ(.pptm)を(.ppam)として保存します。

別名保存のやり方を3通り書いてますので、いずれかの方法でやってみてください。

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

ファイル名はマクロ名と同名にしておくと分かりやすいと思います。
拡張子は、PowerPoint アドイン(*.ppam)として、下記のように保存します。

保存場所は、下記アドインのディレクトリになります。

C:\Users\(ユーザー名)\AppData\Roaming\Microsoft\AddIns

アドインにマクロを登録する

「開発」→「PowerPointアドイン」→「新規追加」から、先ほど保存したppamを指定します。

「Alt」→「T」→「I」でも表示できます。

下記2点を確認し、閉じるをクリックしてください。

  • チェックマークがついていること
  • 読み込む(L)がグレーアウトになっていること

アドインから呼び出す

アドインを設定すると、下記のように「アドイン」タブが表示されます。

保存関連のマクロですので、アイコンをフロッピーディスクに設定しました。
マウスオーバーすると、ToolTipsとして、”Save as JPEG”と表示されます。

これをクリックすれば、登録したマクロが実行されます。

まとめ

今回、全ファイル共通でマクロを扱えるようにアドインの設定を紹介しました。

別の方法でも実現可能ですが、サクッと設定したい場合は、こちらの方法で実施するのが手軽かもしれません。利用したいマクロに対して、サンプルのように

  • Auto_OpenとAuto_Closeを設定
  • アドインとして保存
  • アドインの登録

を実行するだけで、呼び出しが可能になります。

他の人でも利用できるように配布も可能となります。

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

COMMENT

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