記事内で紹介する商品を購入することで、当サイトに売り上げの一部が還元されることがあります。
(記事内のリンクの一部はアフィリエイトリンクです。詳しくはプライバシーポリシー&免責事項をご覧ください)
当ブログでは、記事作成のためにパワーポイントで画像を作成し、見出しの下に段落のまとめを挟むよう心掛けています。
しかし、簡単な画像とはいえ、手間がかかることも事実。
そこで、マクロを活用して作業効率化を試みました。ChatGPTにマクロ製作を依頼し、作ったマクロの挙動がこちらです。
このようにマクロを実行するとテンプレートに指定したスライドのコピーを作成し、その中にあるテキストボックスの文言を変えて新しいスライドとして作成してくれます。
わずかな時間とはいえ、量が多くなれば大量の時間の節約になることも事実。
そこでこの記事ではchatGPTとのやりとりとプロンプトの例を記事で紹介しています。
ぜひ最後まで読んでみてください!
目次
当ブログでは
- SEO対策の一つとしてオリジナルな画像を利用した方が良いと聞いたことがある
- 読者もそこまでじっくり段落を読まない
ということを踏まえ、
記事の見出しのすぐ下に挟む画像もなるべく、その段落のまとめを画像にするようにしています。
こんな感じです
ただ、このような画像を作るのは地味に手間なんです。
新しいスライドにコピーして、テキストボックスの文言を変えて、JPEGで出力して…
その作業を効率化するために、
- テンプレートに指定したスライドのコピーを作成しテキストボックスの文言を変えられるマクロ
- 完成したスライドをJPEG画像として出力できるようにするマクロ
この2つのマクロをPowerPointに搭載しました。
▶︎スライドをJPEG出力するマクロ製作の話はこちらの記事で紹介しています。
【ChatGPT×PowerPoint】スライドをJPEG出力するマクロを作った話今回製作したマクロでは以下のような要件を満たすものにしました。
- 指定したスライドをコピー&ペーストする(テキストボックスや画像もそのままコピペ)
- 新しいスライドにペーストされるテキストボックスはペースト前に文言を入力できるようにする
これらを満たすマクロを作れるように、ChatGPTと相談しました!
実際にChatGPTにどのようなプロンプトを投げていたのかを紹介します。
早速、プロンプトを紹介します。
以下の要件を満たすテンプレートを作成するvbaのコードを教えてください。
【要件】
・いますでに作成されている任意のスライドをテンプレートとする。
・そのテンプレートを利用して新規スライドを作成する際、そのスライド内にあるテキストボックスの文言だけ編集できるようにしたい
以下は、任意の既存のスライドをテンプレートとして利用し、新規スライドを作成する際にそのスライド内のテキストボックスの文言だけを編集できるVBAのコードです。
Sub CreateCustomSlideFromTemplate()
Dim templateSlide As Slide
Dim newSlide As Slide
Dim shp As Shape
Dim editedText As String
Dim i As Integer
' テンプレートとして利用するスライドを選択
On Error Resume Next
Set templateSlide = Application.ActiveWindow.View.Slide
On Error GoTo 0
If templateSlide Is Nothing Then
MsgBox "テンプレートとするスライドを選択してください。", vbExclamation
Exit Sub
End If
' 新規スライドを作成
Set newSlide = ActivePresentation.Slides.Add(ActivePresentation.Slides.Count + 1, templateSlide.Layout)
' テンプレートのスライドからテキストボックスをコピーして新規スライドに追加
For i = 1 To templateSlide.Shapes.Count
If templateSlide.Shapes(i).Type = msoTextBox Then
templateSlide.Shapes(i).Copy
newSlide.Shapes.Paste
End If
Next i
' 新規スライドのテキストボックスの文言を編集
For Each shp In newSlide.Shapes
If shp.Type = msoTextBox Then
editedText = InputBox("テキストを編集してください:", "テキスト編集", shp.TextFrame.TextRange.Text)
shp.TextFrame.TextRange.Text = editedText
End If
Next shp
' 新規スライドが選択されるようにする
newSlide.Select
End Sub
ただ、実行すると、画像がコピペされませんでした。
プロンプトが悪かったですね…
ということで再び投げかけてみました。
「(ChatGPTが提示したコード)」だと、テンプレートに指定した画像などのオブジェクトがコピーされません。画像などもコピーしてコピー先に追加することはできますか
はい、テンプレートのスライドに含まれる画像や図形などのオブジェクトもコピーして新規スライドに追加することは可能です。以下の修正済みコードを参照してください:
Sub CreateCustomSlideFromTemplate()
Dim templateSlide As Slide
Dim newSlide As Slide
Dim shp As Shape
Dim editedText As String
Dim i As Integer
' テンプレートとして利用するスライドを選択
On Error Resume Next
Set templateSlide = Application.ActiveWindow.View.Slide
On Error GoTo 0
If templateSlide Is Nothing Then
MsgBox "テンプレートとするスライドを選択してください。", vbExclamation
Exit Sub
End If
' 新規スライドを作成
Set newSlide = ActivePresentation.Slides.Add(ActivePresentation.Slides.Count + 1, templateSlide.Layout)
' テンプレートのスライドからテキストボックスをコピーして新規スライドに追加
For i = 1 To templateSlide.Shapes.Count
If templateSlide.Shapes(i).Type = msoTextBox Then
templateSlide.Shapes(i).Copy
newSlide.Shapes.Paste
End If
Next i
' テンプレートのスライドから画像や図形などをコピーして新規スライドに追加
For i = 1 To templateSlide.Shapes.Count
If templateSlide.Shapes(i).Type <> msoTextBox Then
templateSlide.Shapes(i).Copy
newSlide.Shapes.Paste
End If
Next i
' 新規スライドのテキストボックスの文言を編集
For Each shp In newSlide.Shapes
If shp.Type = msoTextBox Then
editedText = InputBox("テキストを編集してください:", "テキスト編集", shp.TextFrame.TextRange.Text)
shp.TextFrame.TextRange.Text = editedText
End If
Next shp
' 新規スライドが選択されるようにする
newSlide.Select
End Sub
これで完成しました。
ただし、このマクロの場合注意があります。それは
- テキストボックスを他のオブジェクト(他のテキストボックス含む)と一緒にグループ化していると、グループ化されたオブジェクトの中にテキストボックスが含まれていても、それはテキストボックスと見做されない
という点です。
そのため、オブジェクトのグループ化は解除している方が良いですね。
ChatGPTを使ってPowerPointにマクロを搭載させることに成功しました!
ChatGPTを使ってマクロを作成する際は
- マクロの要件を抽出
- 前提(どういう現況か等)と要件を指定したプロンプトを投げる
- 提示されたコードを実行(トライ)
- 狙い通りの挙動にならない場合は、再度プロンプトを投げる(修正する)
- 3〜4を繰り返す
という流れが必要です。少し手間のように感じますが、この記事に載せているマクロを完成させるまで30分ほどでした。
画像1枚あたりの短縮時間は1分〜2分程度かもしれませんが、今後もこの作業が続けば、30枚作ればおよそ1時間の短縮ですからね!
30枚以上を作れば時間的なリターンが大きくなりますので作業効率化を図るにはもってこいですよね!
ぜひこれからも作業効率化を図っていきます!
こういったマクロを作成するためのプロンプトはこれから必須の力となることが予想されます。
もちろん独学で研究を重ねることもできると思いますが、より本格的に学ぶならばプログラミングスクールを利用するのもひとつ!
TechAcademy [テックアカデミー] の「はじめてのプロンプトエンジニアリングコース」なら4週間で本格的なプロンプトを学ぶことができます!
TechAcademy [テックアカデミー] の「はじめてのプロンプトエンジニアリングコース」なら
- 約1ヶ月間で実施した事前申込では個人で150名、法人で累計200名程度の方にお申し込みいただき、 既に大好評のコース
- 非エンジニア、文系の方など様々な方が利用されている
- 学習期間が4週間と短期間!
まずはメンターに気軽に相談!
最後まで読んでいただきありがとうございました。
この記事が少しでも参考になれば幸いです。
それではまたここで会いましょう!
にほんブログ村ブログ村に参加中です。上のバナーをクリックいただくだけで当ブログにポイントが入ります。いつも応援クリックありがとうございます。
Twitter やってます。
新着記事のお知らせをしていますのでぜひフォローしてください!スポンサーリンク