全スライドにアニメーション付きの図形を同じ位置にコピーしたい
www.youtube.com
https://www.youtube.com/watch?v=gWGkkzfn2qo
目次
00:00 1.キッカケの質問を紹介
00:35 2.AI Bingに聞いてみた
02:42 3.コードを貼り付けて実行 chatGPTはたまにうそをつく?
03:28 3.1 コードの編集画面に行きコードを貼り付けます
04:18 表示 マクロから作成する方法
05:24 3.2 コードを貼り付けて、実行します。
06:45 コンパイルエラー発生 教えてもらったコードを貼っただけなのに・・・
07:34 シェイプの名前でエラー発生
08:07 シェイプの名前を調べる方法 ホーム 配置 オブジェクトの選択と表示
09:48 コードを簡単に説明する
11:03 やっと、実行確認
12:19 再テストで不具合を解説
15:22 4.おわりの挨拶と問題点 二回走らせると・・・
18:43 4.1 取り扱い注意 の文字をテキストで左下に
20:33 4.2 取扱注意を社外秘にして、赤で囲って と 修正受けたとき
21:53 再度、頭から、まとめる。
1.キッカケの質問を紹介
detail.chiebukuro.yahoo.co.jp
>PowerPointにて、全スライドにアニメーション付きの図形を同じ位置にコピーしたいです。
>1枚1枚するのは非常に手間なので(80枚あるので)、何かいい方法はありませんか。
>スライドマスター以外でお願いしたいです。よろしくお願いいたします。
2.AI Bingに聞いてみた
Use PowerPointVBA
1スライド目のシェイプ名"textbox1"をアニメーション付きでコピーして、
2スライドから最終スライドまで、同じ位置にアニメ付きで貼り付ける。
コードを教えてください。よろしくお願いします。
とBing(chatGPT)に質問すると、
Sub CopyTextboxWithAnimation() 'エラーが発生します Dim sld As Slide Dim shp As Shape Dim i As Integer Set sld = ActivePresentation.Slides(1) Set shp = sld.Shapes("textbox1") For i = 2 To ActivePresentation.Slides.Count shp.Copy ' ppPasteTextEffect で エラー発生 ' chatGPTはたまにプロパティや定数を言葉として創造して、エラーになりますね・・・言語だから? ActivePresentation.Slides(i).Shapes.PasteSpecial ppPasteTextEffect, msoFalse, msoFalse, shp.Left, shp.Top Next i End Sub
↑を参考に作ると、便利です。
これを直してみます。
※と初見ぽく言ってますが、
テストしてからライブを始めたので、初見じゃなくて2回目です。
今回は、
ActivePresentation.Slides(i).Shapes.PasteSpecial ppPasteTextEffect, msoFalse, msoFalse, shp.Left, shp.Top
を
ActivePresentation.Slides(i).Shapes.PasteSpecial
のパラメーター無しの貼り付けで使用しました。
Sub CopyTextboxWithAnimation() 'こっちを使って下さい。 Dim sld As Slide Dim shp As Shape Dim i As Integer Set sld = ActivePresentation.Slides(1) Set shp = sld.Shapes("textbox1") For i = 2 To ActivePresentation.Slides.Count shp.Copy ' ppPasteTextEffect で エラー発生するので、削除しました。 ' chatGPTはたまにプロパティや定数を言葉として創造して、エラーになりますね・・・言語だから? ActivePresentation.Slides(i).Shapes.PasteSpecial Next i End Sub
余談:同じ質問を投げても、違う回答が返ってくるのも、chatGPTらしい?
下記、テストで実行したら、違うコードが返ってきて、少しびっくりした・・・
https://www.youtube.com/watch?v=gWGkkzfn2qo&t=00m35s
↑でテストすると下記が返ってきたり。
Sub CopyTextbox1() Dim sld As Slide Dim shp As Shape Dim i As Integer Set sld = ActivePresentation.Slides(1) Set shp = sld.Shapes("textbox1") For i = 2 To ActivePresentation.Slides.Count shp.Copy ActivePresentation.Slides(i).Shapes.PasteSpecial ppPasteTextEffect With ActivePresentation.Slides(i).Shapes(ActivePresentation.Slides(i).Shapes.Count) .Left = shp.Left .Top = shp.Top End With Next i End Sub
3.コードを貼り付けて実行 chatGPTはたまにうそをつく?
コードを貼り付けて、実行します。
3.1 コードの編集画面に行きコードを貼り付けます
https://www.youtube.com/watch?v=gWGkkzfn2qo&t=03m28s
パワポのファイルを開いて
開発へ
Visual Basic を押して、編集画面へ
挿入 -- 標準モジュール
それか、表示、マクロでxxxx作成を押して、編集画面へ
3.2 コードを貼り付けて、実行します。
https://www.youtube.com/watch?v=gWGkkzfn2qo&t=05m24s
※わざと、数回間違える。
※※演技、仕込みで間違える。ぉぃぉぃ。
06:45 コンパイルエラー発生 教えてもらったコードを貼っただけなのに・・・
https://www.youtube.com/watch?v=gWGkkzfn2qo&t=06m45s
07:34 シェイプの名前でエラー発生
https://www.youtube.com/watch?v=gWGkkzfn2qo&t=07m34s
08:07 シェイプの名前を調べる方法 ホーム 配置 オブジェクトの選択と表示
https://www.youtube.com/watch?v=gWGkkzfn2qo&t=08m07s
09:48 コードを簡単に説明する
https://www.youtube.com/watch?v=gWGkkzfn2qo&t=09m48s
11:03 やっと、実行確認
12:19 再テストで不具合を解説
4.おわりの挨拶と問題点
単純コピーなので、二回繰り返すと、複数作成される。
実務だと、アニメや色を置き換えたい・・・と言われたとき、
前のデータに上書きしたかったりするかなぁ
再度復習を兼ねて、実行する
アニメ無しもコピーできるので、
4.1 取り扱い注意 の文字をテキストで左下に
https://www.youtube.com/watch?v=gWGkkzfn2qo&t=18m43s
4.2 取扱注意を社外秘にして、赤で囲って と 修正受けたとき
https://www.youtube.com/watch?v=gWGkkzfn2qo&t=20m33s
そんな時、置き換えたいなぁ・・困るかなぁ。
次の課題かな。
21:53 再度、頭から、まとめる。
https://www.youtube.com/watch?v=gWGkkzfn2qo&t=21m53s
コード作成時、何かの参考となれば、幸いです。。。