見出し画像

Code Interpreterでpptxファイルの構造を調べる→スライド自動生成

前回Code Interpreterを用いて「自社・自前のPPTテンプレート」を使ってスライド作成を簡便にやることはできないかを検証しました。

結果的にはできましたが、けっこう苦戦しました。

ChatGPTにとって難しかったポイントは?

ChatGPTとやり取りしながら「Core Interpreterにとって難しかったポイント」を想像するに、おそらくパワーポイントの「適切なレイアウトの選択」と「適切なプレースホルダーの選択」が難しかったようです。

渡された情報のどれをタイトルに、どれをキーメッセージに嵌め込んだらよいのかがわからず、また複数あるレイアウトの中から、その主張をするのにどのレイアウトを選択したらよいのか…この辺を考えるのに苦戦していたようでした。

また「pptx」を渡すと、「スライドマスタ」ではなくて、その「pptx」にすでに配置されているスライド自体を解析してました。
ここはただこの辺はプロンプトの投げ方で工夫できる点のように思います。


方針修正

ちょっとテンプレートアップロード時に指示するする内容を改めてみます。すでに配置されているスライドではなく、スライドマスタに登録されているレイアウトの方を調べるように指示します

プロンプト

この.pptxファイルをアップロードしますので、スライドのレイアウトの構造(スライドマスタ)を調べてくれませんか? 具体的には、レイアウトの名前、そこに置かれているプレースホルダーの種類などを調べてください。

ChatGPT回答

上手くレイアウトの方を解析してくれたようです。

私の知識がないだけかもしれないですが、VBAでPowerPointを扱うと、結構困るポイントなので、さくっとこれを解析してくれるのはうれしい。

すまんな、実際はアラフォーのおっさんだ

レイアウトとプレースホルダーを指定してテキストを埋め込んでもらう

ちゃんとレイアウトとプレースホルダーを指定すれば、PowerPointにテキストを埋め込んでもらえるか確認します

プロンプト

先ほどアップロードしたPower Pointのファイル活用し、 X. Message2+Textのレイアウトを使って、
タイトル (0, 1)に「ああああ」
コンテンツ (13, 2)に「いいいい」
画像 (1, 4), に「うううう」(テキストでいいです)
と入力したPowerPointファイルを作成して出力してもらえますか?
アップロードした「Created Presentaion.pptx」の後ろにSlideを追加して出力してくれればいいです。

ChatGPT回答

出来上がったファイルを見ると、確かにできているっぽいです

ただこんな形で1枚1枚ChatGPTに指示するのは、作業効率的にナンセンスですね。自分で手で打った方が早いもの・・・


レイアウトとプレースホルダーを指定して複数スライドを作成する

そしたら次に複数スライドの作成に取り掛かります。

私はPowerPointスライドのアウトラインをWordで作るケースが多いですが、アウトラインはExcelで作成したと仮定しましょう。(Wordで作ったとしてもちゃんと構造化できていればおそらく同じことができると思うけど)

特に中味はない数字の羅列ですが、適当に9行(9枚)分のデータを用意します

プロンプト

このExcelをCode Interpreterにアップロードして、PowerPointに落とし込むように指示してみます。

①このExcelを解析してください
②ヘッダーが「タイトル(0, 1)」「コンテンツ(13, 2)」「画像(1, 4)」になっていると思います
③先ほどアップロードした「Created Presentaion.pptx」の後ろにスライドを追加してほしいのですが、「Slide.xlsx」の2行目以降のテキストを、[X. Message2+Text]の対応するプレースホルダーにコピー&ペーストしてください
④終わったらPowerPointファイルを出力してください

ChatGPT回答

上手く動作してPowerPointファイルを吐いてくれました。

ChatGPT回答

結果はと言うと、言われた指示の通りにやってくれたようです。ちゃんと9枚のスライドが作成されています。

出力結果

結論と感想

きちんと構造化されたデータを渡せば、レイアウトとプレースホルダーに対してテキストを流し込むことは可能な模様です。

今回は1種類のレイアウトしか使っていなかったですが、Excelの方にもう1列追加し、レイアウト自体も入力して渡せば複数のレイアウトでもうまく動作するでしょう(たぶん)。

が、しかし・・・

ここまで解析ができているならば、わざわざChatGPTを経由する必要がどこまであるのかという疑問が湧いてきます。

つまり直接ExcelからVBAでPowerPointを呼び出して、レイアウトを指定してコピペを行えばいいわけです。そのコード自体をChatGPTに作らせればいいと思います。

ただ、そのやり方だとテキストコピペはできるけども、オブジェクトを駆使してきちんと映えるスライド作りはできないわけなので、どちらかと言うと次はその辺を検証してみたいところです。

今のところのイメージはこんな感じ

「もっとこういうやり方ができるよ」「こうしたらいいよ」などのアドバイスがあれば、コメント欄に頂けると幸いです

それではまた!

この記事が気に入ったらサポートをしてみませんか?