0

次の VB.NET (VSTO) コードを使用して、MS-Word に図形を追加します。

Dim app As Word.Application = Globals.ThisAddIn.Application
Dim doc As Word.Document = app.ActiveDocument
Dim left As Single = CSng(Convert.ToDouble(app.Selection.Information(Word.WdInformation.wdHorizontalPositionRelativeToPage)))
Dim top As Single = CSng(Convert.ToDouble(app.Selection.Information(Word.WdInformation.wdVerticalPositionRelativeToPage)))
Dim shape As Word.Shape = doc.Shapes.AddShape(1, left, top, 225.1F, 224.5F)

shape.Fill.BackColor.RGB = ColorTranslator.ToOle(Color.Transparent)
shape.Fill.Visible = Microsoft.Office.Core.MsoTriState.msoFalse
shape.Fill.Transparency = 0.0F
shape.Line.Transparency = 0.0F
shape.Line.Visible = Microsoft.Office.Core.MsoTriState.msoFalse
shape.Fill.UserPicture("C:\Newfolder\App1.jpg")

このコードが行うことは、カーソル ポイントに長方形を追加し、透明 (背景と線の両方) にして、画像を追加 (塗りつぶし) することです。

これはWord 2007では正常に機能します。しかし、Word 2010Word 2013には問題があります。カーソルポイントに長方形を追加し、透明にします。しかし、それはイメージを埋めません。

shape.Fill.UserPicture("C:\Newfolder\App1.jpg")

上記のコード行は、Word 2010 および Word 2013 では機能しません。他の部分は正常に機能します。Word 2010 および 2013 で画像を四角形に塗りつぶすようにコードを変更するにはどうすればよいですか?

4

1 に答える 1

1

shape.Fill.UserPicture("C:\Newfolder\App1.jpg")試す代わりに

    Word.Range range = shape1.TextFrame.TextRange;
    range.InlineShapes.AddPicture(@"C:\Newfolder\App1.jpg", false, true, Type.Missing);
于 2015-07-24T09:07:19.743 に答える