1

Word 2003 で開発されたサード パーティ コードがいくつかありますが、Word 2010 では機能しません。コードは Excel.Chart オブジェクトを貼り付けて、インライン シェイプに変換する必要があります。

Sub PasteChartAsInteractive(chart As Excel.chart)
Dim myShape As Shape

chart.ChartArea.Copy
Selection.Style = ActiveDocument.Styles("Normal")
Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter
Selection.PasteAndFormat (wdChart)

Set myShape = Selection.Paragraphs(1).range.InlineShapes(1).ConvertToShape
myShape.ConvertToInlineShape
...

最初は、このPasteAndFormat行は空のエラー メッセージを表示していました。

次に、その行を次のように置き換えようとしました

Selection.PasteSpecial Link:=False, DataType:=wdPasteOLEObject, Placement _
    :=wdInLine, DisplayAsIcon:=False

そして、別のエラーが発生しましたSystem Error &H80004005 (-2147467259). Unspecified error。ただし、この場合、グラフは実際に Word に貼り付けられます。

誰かが問題の原因と解決方法を知っていますか?

ティア

4

1 に答える 1

1

解決策を見つけました。まず、PasteAndFormat を PasteSpecial に置き換えました。次に、エラーは意味がないので、無視しようとしました。そしてそれは働いた!コードは次のとおりです。

Sub PasteChartAsInteractive(chart As Excel.chart)
Dim myShape As Shape

chart.ChartArea.Copy
Selection.Style = ActiveDocument.Styles("Normal")
Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter
' Selection.PasteAndFormat (wdChart)
On Error Resume Next
Selection.PasteSpecial Link:=False, DataType:=wdPasteOLEObject, Placement _
    :=wdInLine, DisplayAsIcon:=False
Set myShape = Selection.Paragraphs(1).range.InlineShapes(1).ConvertToShape
myShape.ConvertToInlineShape
...
于 2012-11-12T11:57:38.283 に答える