すこし、つれづれをサボらずに書こうと思って、ひねり出したネタです。

エクセルのマクロを使われる方は多いと思います。

私たちも、相談実績の集計をするのに、相談内容を入力する専用のアプリケーションから、CSVファイルに書き出し、マクロ(VBA)を使って相談実績表を作っています。

PowerPointにもマクロ機能があるのですが、これって何に使うのかなぁと思っていました。

特に調査もしないでいたのですが、先日ひとつのアイデアが浮かび、PowePointのマクロ機能を使って、すっかり便利にやりたいことがやれたので紹介します。「そんなこと、知っとるわ」という方はスルーしてください。

視覚障害のある方に、PowerPointで作った資料の中身を伝えたいというニーズがありまして、PowerPointの一枚一枚のスライド上のテキストボックスから文字を拾い出し、ノートに書き出すという作業をマクロでできないかと考えた次第です。

自分で作るのは大変そうだから、はやりのChatGPTさんにお願いしてみることにしました。

PowerPointの各スライドにあるテキストボックスから、文字列を抜き出し、ノートに書き出すマクロを作ってください。

そうしたら、もう、スラスラと次のお答えが返ってきました。

PowerPointのスライドからテキストボックスの文字列を抜き出し、ノートに書き出すマクロを作成する方法を説明します。以下は、VBA(Visual Basic for Applications)を使ってこれを実現するマクロの例です。

  1. PowerPointでVBAエディタを開く:
    • PowerPointを開き、「Alt + F11」キーを押してVBAエディタを開きます。
  2. 新しいモジュールを追加:
    • 「挿入」メニューから「モジュール」を選択して、新しいモジュールを追加します。
  3. 以下のコードをモジュールに貼り付ける:
  4. Sub ExtractTextToNotes()
    Dim pptSlide As Slide
    Dim pptShape As Shape
    Dim pptNoteShape As Shape
    Dim extractedText As String

‘ スライドごとにループ
For Each pptSlide In ActivePresentation.Slides
extractedText = “”
‘ 各スライドのシェイプごとにループ
For Each pptShape In pptSlide.Shapes
If pptShape.HasTextFrame Then

(中間省略)

‘ ノートにテキストを書き込む
If pptNoteShape.HasTextFrame Then
pptNoteShape.TextFrame.TextRange.Text = extractedText
End If
Next pptSlide
End Sub
マクロを実行する:

  • 「F5」キーを押してマクロを実行します。

このマクロは、各スライドのすべてのテキストボックスからテキストを抽出し、それをそのスライドのノートに書き出します。既存のノートがある場合は、それに追加され、ない場合は新しく作成されます。

何か質問があれば、お気軽にどうぞ。

早速マクロを実行するとほぼ期待通りの出来映えでした。すごい!と感心しました。

これは、読み原稿作成のときにも、ちょっと使えるかなと思いました。

上の例では、表の中のテキストは読み取ってくれていなかったので、修正を御願いしたらそれもスラスラとやってくれました。みなさんもこれを参考にお試しください。

「PowerPointのマクロを組んでみた」という見出しに若干疑義がありますが、まぁ、ご容赦ください。