- ベストアンサー
PowePointマクロでシェイプの線を修正したい
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
バージョン によっても異なるかと存じますが、PowerPoint 2003 ではこんな感じでできました。 アクティブ な スライド だけの選択なら Sub Macro1() Dim myShape As Shape For Each myShape In ActiveWindow.Selection.SlideRange.Shapes ' myShape.Select If myShape.Line.ForeColor.RGB = RGB(255, 0, 0) Then myShape.Line.Weight = 4.5 End If Next End Sub 全ての スライド 上の オートシェイプ が対象なら Sub Macro2() Dim myWindow As Slide Dim myShape As Shape For Each myWindow In ActivePresentation.Slides ' myWindow.Select For Each myShape In myWindow.Shapes ' myShape.Select If myShape.Line.ForeColor.RGB = RGB(255, 0, 0) Then myShape.Line.Weight = 4.5 End If Next Next End Sub 「枠線の太さ」の指定は、[オートシェイプの書式設定] ダイアログ - [色と線] タブ - [スタイル(S):] に表示される「pt」数を見て myShape.Line.Weight = 4.5 というように記載します。 また、色の指定は、[新しいマクロの記録] で「赤い線にしている四角シェイプ」を描いてみて得られる .Line.ForeColor.RGB = RGB(255, 0, 0) の部分から「RGB(255, 0, 0)」で指定します。 「'」の行の コメント を外して、VBE(Visual Basic Editor) の画面から [F8] キー(ステップ イン デバッグ) でお試しください。
その他の回答 (1)
- DOUGLAS_
- ベストアンサー率74% (397/534)
>四角のシェイプのみ対象とする 例えば [新しいマクロの記録] で「四角形」と「楕円」の シェイプ を描いてみると ActiveWindow.Selection.SlideRange.Shapes.AddShape(msoShapeRectangle,・・・).Select ActiveWindow.Selection.SlideRange.Shapes.AddShape(msoShapeOval,・・・).Select という コード が得られます。 一方、前回答の Macro1 を ステップ イン デバッグ するときに、「myShape」を [ウォッチ式の追加] し、ウォッチ ウィンドウ で、「myShape」配下の プロパティ を見てみると、 : AutoShapeType : msoShapeRectangle : MsoAutoShapeType : Module1.Macro1 という要素が見出されます。 従って、 If myShape.AutoShapeType = msoShapeRectangle Then とすることによって「四角のシェイプのみ対象とする」ことができます。 >他のある形のだけを対象にすることも可能でしょう? [新しいマクロの記録] で「他のある形」を描いてみて得られる コード から「msoShape~~」という「MsoAutoShapeType」を見出し、上記の コード に代入してください。
お礼
なるほど、ウォッチ ウィンドウですね。ありがとうございました。
お礼
質問した日の内に、詳しい回答をいただけるとは、誠にありがとうございました。
補足
四角のシェイプのみ対象とする。あるいは、他のある形のだけを対象にすることも可能でしょう?