2016-07-11 16 views
1

単語ドキュメントに保存されているすべての画像にプロアクティブまたはレトロアクティブに簡単に適用できますか?ワードドキュメント内のすべての画像にピクチャスタイルを適用する

は私が1

+0

あなたは確かにそれらをループとは、(それぞれに同じコードを適用することができます...ワード2010 私は他のバージョンをテストしていなかったにも作品インライン対テキストラップされた図形の場合)。 – Chris

答えて

1

ピクチャースタイルのコンセプトのみUIレベルで存在することによって、それら1を変更することなく、私が文書に追加するすべての画像に行く影の長方形「ピクチャースタイルを適用したいです。画像に適用するには、UIにスタイルのプロパティを確認し、それらを適用する必要がありますVBAを使って一つずつ:

Sub FormatPictures() 

    Dim oInlineShape As inlineShape 
    For Each oInlineShape In ActiveDocument.InlineShapes 
     ApplyPictureStyleToInlineShape oInlineShape 
    Next 

    Dim oShape As Shape 
    For Each shape In ActiveDocument.Shapes 
     ApplyPictureStyleToShape oShape 
    Next 


End Sub 

Sub ApplyPictureStyleToInlineShape(shape As inlineShape) 

    ' borders 
    shape.Borders.Enable = False 

    ' fill 
    shape.Fill.Visible = msoFalse 

    ' line 
    shape.Line.Visible = msoFalse 

    ' shadow 
    shape.Shadow.Style = msoShadowStyleOuterShadow 
    shape.Shadow.Type = msoShadow21 
    shape.Shadow.ForeColor = WdColor.wdColorBlack 

    shape.Shadow.Transparency = 0.3 
    shape.Shadow.Size = 100 
    shape.Shadow.Blur = 15 
    shape.Shadow.OffsetX = 0 
    shape.Shadow.OffsetY = 0 

    ' reflection 
    shape.Reflection.Type = msoReflectionTypeNone 

    ' glow 
    shape.Glow.Radius = 0 
    shape.SoftEdge.Radius = 0 

End Sub 

Sub ApplyPictureStyleToShape(shape As shape) 

    ' fill 
    shape.Fill.Visible = msoFalse 

    ' line 
    shape.Line.Visible = msoFalse 

    ' shadow 
    shape.Shadow.Style = msoShadowStyleOuterShadow 
    shape.Shadow.Type = msoShadow21 
    shape.Shadow.ForeColor = WdColor.wdColorBlack 

    shape.Shadow.Transparency = 0.3 
    shape.Shadow.Size = 100 
    shape.Shadow.Blur = 15 
    shape.Shadow.OffsetX = 0 
    shape.Shadow.OffsetY = 0 

    ' reflection 
    shape.Reflection.Type = msoReflectionTypeNone 

    ' glow 
    shape.Glow.Radius = 0 
    shape.SoftEdge.Radius = 0 

End Sub 
0

はただ、あなたたち(と他の人がそう感謝すべてにインスピレーションを与えてしまいました! )、そして自分のマクロを作成して、選択した貼り付けた画像を単一の枠(幅0.75pt)でシンプルなシャドウを3ptオフセットしました...

私はそのマクロをアイコンに割り当てました。

一度イメージを貼り付けます(ほとんどはシステムの手順とドキュメントのスクリーンショットです)。

は、それはおそらく若干異なるでしょうが


Sub FormatPictureWithLineAndShadow() 
Dim oInlineShp As InlineShape 
For Each oInlineShp In Selection.InlineShapes 
    With oInlineShp 
    'Line border 
     With .Borders(wdBorderLeft) 
      .LineStyle = wdLineStyleSingle 
      .LineWidth = wdLineWidth075pt 
      .Color = wdColorAutomatic 
     End With 
     With .Borders(wdBorderRight) 
      .LineStyle = wdLineStyleSingle 
      .LineWidth = wdLineWidth075pt 
      .Color = wdColorAutomatic 
     End With 
     With .Borders(wdBorderTop) 
      .LineStyle = wdLineStyleSingle 
      .LineWidth = wdLineWidth075pt 
      .Color = wdColorAutomatic 
     End With 
     With .Borders(wdBorderBottom) 
      .LineStyle = wdLineStyleSingle 
      .LineWidth = wdLineWidth075pt 
      .Color = wdColorAutomatic 
     End With 
     ' shadow 
      .Shadow.Style = msoShadowStyleOuterShadow 
      .Shadow.Type = msoShadow21 
      .Shadow.ForeColor = WdColor.wdColorBlack 
      .Shadow.Transparency = 0.6 
      .Shadow.Size = 100 
      .Shadow.Blur = 5 
      .Shadow.OffsetX = 3 
      .Shadow.OffsetY = 3 
      ' reflection 
      .Reflection.Type = msoReflectionTypeNone 
      ' glow 
      .Glow.Radius = 0 
      .SoftEdge.Radius = 0 
End With 
    Next 
End Sub 
+0

これは、すべての画像をあらかじめ選択している場合にうまく機能します。しかし、ドキュメント内にイメージがあり、ドキュメントのテキストではなく、すべてのイメージに対してマクロを実行したい場合はどうしたらよいでしょうか?ドキュメント内のすべてのイメージをループするようにマクロを調整し、設定を適用できますか? –

+0

さらに詳しい情報を追加するには、文書に他の「画像のような」オブジェクトがあると、マクロが失敗します。たとえば、(私の場合は)横方向の規則があります(文書は


のHTML文書です)。そのため、マクロは画像型オブジェクトでのみ動作する必要があります。私の場合は、
のコードをすべて削除し、マクロはうまくいきました。 –

関連する問題