残業を減らす!Officeテクニック

【Copilot for Microsoft 365】パワポもマクロ作成をAIに任せて大幅に効率化!

手動では面倒なテキストボックスからの改行削除を自動化

Copilotに頼めばスライド作成が一瞬で!?

 日頃からPowerPointの“マクロ”を活用している人は少ないですよね。スライドの分割やテキストボックスの連結、フォルダー内の画像を各スライドに挿入など、手動では辛い作業も多いのですが、力技で済ましてしまっているのではないでしょうか。

 スライド作成はデザインが注目されがちで、Excelのマクロと比較して積極的に覚えようという気にならないものです。そんな人は、Copilotに助けてもらうのはいかがでしょうか。

 「○○するVBAのコードを記述して」と指示すれば、あっという間にコードが生成されます。後は、VBEの画面を呼び出して実行するだけ。今回は、選択中のテキストボックスに含まれる改行をまとめて削除するVBAコードをCopilotに記述してもらいます。

 なお、Web版のCopilotでも同じようにVBAコードを書いてもらうことは可能です。

CopilotにVBAコードを生成してもらう

 画面右上の[Copilot]ボタンからサイドウィンドウを表示してプロンプトを入力するだけです。ここでは、以下のように入力しました。

複数選択しているテキストボックスに含まれる改行を削除するVBAコードを書いてください

 なお、プロンプトを改行する場合は[Shift]+[Enter]キーを押してください。[Enter]キーはプロンプトの送信となります。

画面右上の[Copilotボタンをクリックする]
プロンプトを入力して送信ボタンをクリックする
Copilotからの応答を待つ
VBAコードが生成された。[コピー]をクリックしてコードをコピーしておく

Web版のCopilotでコードを検証可能

 生成されたVBAコードは以下の通りです。「Chr(13)」と「Chr(10)」は改行を表しています。大きな問題はなさそうですが、「" "」に置換(Replace)する箇所が気になりますね。

Sub RemoveLineBreaks()
    Dim shp As Shape
    Dim sText As String
    For Each shp In ActiveWindow.Selection.ShapeRange
        If shp.Type = msoTextBox Then
            sText = shp.TextFrame.TextRange.Text
            sText = Replace(sText, Chr(13) & Chr(10), " ")
            sText = Replace(sText, Chr(13), " ")
            shp.TextFrame.TextRange.Text = sText
        End If
    Next
End Sub

 このままでは、半角スペースに置換されるはずです。Web版のCopilotに検証してもらいましょう。

生成されたVBAコードをWeb版のCopilotに検証してもらった。改行を「空白」で置き換えると教えてくれた。「" "」は「""」が正しい

VBEの画面に貼り付けて実行する

 問題の箇所を修正して、VBEの画面に貼り付けて実行してみます。[開発]タブが表示されていない場合は[ファイル]-[オプション]の順にクリックして[PowerPointのオプション]を表示、[リボンのユーザー設定]から[開発]にチェックを付けておきましょう。

[開発]タブの[Visual Basic]をクリックする
VBEの画面が表示される。[挿入]-[標準モジュール]をクリックする
VBAコードを貼り付ける。Web版Copilotで検証した箇所は修正済み

 このままVBEの画面で[マクロの実行]ボタンをクリックすれば処理が実行されます。ここがPowerPointのマクロの便利なところで、“マクロ有効”として保存しなくても、起動中のファイルからマクロを呼び出すことが可能です。

 ただし、ファイルを閉じるとコードは消えてしまうことに注意。マクロを残しておきたい場合は、マクロ有効プレゼンテーション(PPTM形式)で保存しておいてください。

ここでは、改行を含むテキストボックスを2つ選択してマクロを実行する
VBEの画面に切り替えて[実行]をクリックする
マクロを選択して[実行]をクリックする
テキストボックスのサイズを調整した。テキストボックス内の改行が削除されていることがわかる