結果を先に書くと、
Shape.TextFrame2.TextRange.Font.Fill.GradientStops.Item(1).Color
で取得できました。
- : TextFrame2 : : TextFrame2/TextFrame2 : Module1.aaa
- : TextRange : : TextRange2/TextRange2 : Module1.aaa
- : Font : : Font2/Font2 : Module1.aaa
- : Fill : : FillFormat/FillFormat : Module1.aaa
- : GradientStops : : GradientStops/GradientStops : Module1.aaa
: Count : 4 : Long : Module1.aaa
- : Item 1 : : Variant/Object/GradientStop : Module1.aaa
- : Color : : ColorFormat/ColorFormat : Module1.aaa
: RGB : 16644855 : MsoRGBType : Module1.aaa
? objShape.TextFrame2.TextRange.Font.Fill.GradientStops.Item(1).Color
65535
が、たどり着いた場所でした。
何言ってんだ・・・
youtu.be
https://youtu.be/ZAuhoJLaSNM
↑文字が小さい時は、YouTubeに飛びフルスクリーンで見てください。
00:00 0.挨拶
00:23 1.実際に色を変えてみる
03:21 2.ウォッチ式の設定 しかける
07:37 3.グラデーションはイロイロあるお話
10:43 図形や背景色 の グラデーション
1.実際に色を変えてみる
頭で、 デバッグ
イミディエイト で
objShape.TextFrame2.TextRange.Font.Fill.GradientStops.Item(1).Color = rgb(&hff,0,0)
と直接セットして、グラデーションの変化を見せる
2.ウォッチ式でトロイおじさんが探ってみた
#ウォッチ式 の使い方を説明 #イミディエイト と 合わせて #デバッグ するといいですよ。
Watch : + : objShape : : Shape/Shape : Module1.aaa
: Name : "タイトル 1" : String : Module1.aaa
- : TextFrame2 : : TextFrame2/TextFrame2 : Module1.aaa
- : TextRange : : TextRange2/TextRange2 : Module1.aaa
- : Font : : Font2/Font2 : Module1.aaa
3.グラデーションにはイロイロあって
背景色のグラデーションだったり、
枠線だったり
文字にグラデーションをかけてなく、単色だったり。
分岐点?は、4つ固定じゃなかったり。
そんなこんなで、グラデーションをVBAで触るのは、大変そうです・・・
以上、ウォッチ式でグラデーションを探ってみた話でした。
ついでに、背景色のグラデーションを探ってみた・・・
+ : Fill : : FillFormat/FillFormat : Module1.aaa
- : GradientStops : : GradientStops/GradientStops : Module1.aaa
: Count : 3 : Long : Module1.aaa
- : Item 1 : : Variant/Object/GradientStop : Module1.aaa
- : Color : : ColorFormat/ColorFormat : Module1.aaa
: RGB : 8801066 : MsoRGBType : Module1.aaa
確認で使用した、STOPで止める ソース
Option Explicit Sub aaa() 'パワーポイント Slides を1つ1つSTOPで止める ウォッチ式で確認テスト用 Dim nPAGE As Integer Dim objShape As Shape nPAGE = ActiveWindow.Selection.SlideRange.SlideIndex '選択しているページ 'テストで選択ページの.Shapesを探る For Each objShape In ActivePresentation.Slides(nPAGE).Shapes Debug.Print Debug.Print "Shape.Name:" & objShape.Name Debug.Print "Fill.Type:" & objShape.Fill.Type Debug.Print "Fill.GradientStyle:" & objShape.Fill.GradientStyle Debug.Print "Fill.GradientVariant:" & objShape.Fill.GradientVariant objShape.Select 'わかりやすいように該当オブジェクトを選択 Stop '止める Next MsgBox "終了" End Sub
2022/03/28 追記
とコメントが来たので、パワポのテキスト取得にチャレンジしてみたいと思います。
ken3memo.hatenablog.com