• ベストアンサー

PowePointマクロでシェイプの線を修正したい

スライドに300を越えるのシェイプ(四角や丸)があります。 そして、四角のシェイプは線の色を7色で色分けをしています。 マクロで処理したいことは、例えば赤い線にしている四角シェイプのみ 枠線の太さを太くしたいです。

質問者が選んだベストアンサー

  • ベストアンサー
  • DOUGLAS_
  • ベストアンサー率74% (397/534)
回答No.1

 バージョン によっても異なるかと存じますが、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] キー(ステップ イン デバッグ) でお試しください。

questionFull
質問者

お礼

質問した日の内に、詳しい回答をいただけるとは、誠にありがとうございました。

questionFull
質問者

補足

四角のシェイプのみ対象とする。あるいは、他のある形のだけを対象にすることも可能でしょう?

その他の回答 (1)

  • DOUGLAS_
  • ベストアンサー率74% (397/534)
回答No.2

>四角のシェイプのみ対象とする  例えば [新しいマクロの記録] で「四角形」と「楕円」の シェイプ を描いてみると 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」を見出し、上記の コード に代入してください。

questionFull
質問者

お礼

なるほど、ウォッチ ウィンドウですね。ありがとうございました。

関連するQ&A