2016-06-28 16 views
1

私は、PasteSpecialプロパティ(画像(拡張メタファイル)を使用して、xlsファイルからワード文書にチャートをコピーするコードを作成しようとしています。 。新しいものへの文書のチャートだから、私は、既存のチャートのためのブックマークを使用すると、OKだろうと思った私はOFFICE 2007年vbaを使用してxls文書から単語にコピー

を使用しています、私は次のコードを書いている:。

 Dim YMApp As Word.Application 
     Dim YMDoc As Word.Document 
     Dim B as Bookmark 
     paaath = "D:\" 
     dime = "NameOld.doc" 
     dime2 = "NameNew.doc" 
     Set YMApp = New Word.Application 
     YMApp.Visible = True 
     Set YMDoc = YMApp.Documents.Open(paaath & dime) 
     Word.Documents(dime).SaveAs (paaath + dime2) 
     For k = 1 To 6 
      Windows("New.xls").Activate 
      Sheets("graph").Select 
      Range("L" + Trim(Str(br(k))) + ":V" + Trim(Str(br(k) + 24))).Select 
      Selection.Copy 
      ddd = "bm" + Trim(Str(k)) 
      Set B = YMDoc.Bookmarks(ddd) 
      YMApp.Selection.PasteSpecial DataType:=wdPasteMetafilePicture, Placement:=B 
     Next k 
     YMDoc.Close 
     YMApp.Quit 
     Application.CutCopyMode = False 
     ActiveWorkbook.Close 
    End 
End Sub 

このコードでは、既に作成されているブックマークは認識されません。問題に対処するには

+0

あなたは「ブックマークが認識されていない」とはどういう意味ですかましたか?間違いはありますか?または、出力があなたの期待に合っていないのですか? ... –

+0

申し訳ありませんが、誤った文です。私は専門家ではない。これは趣味のようなものです。私は自分の仕事の実行時間を短縮しようとしています。私はエラーが出ていません。ブックマークはどこに置かれているのではなく、シートの最初に配置されているだけです。 – Georgy

答えて

0

PasteSpecialPlacement引数はBookmarkオブジェクトを受け付けません。

Set B = YMDoc.Bookmarks(ddd) 
YMApp.Selection.PasteSpecial DataType:=wdPasteMetafilePicture, Placement:=B 

代わりに、それはWdOLEPlacement constantかかります。

PasteSpecialを実行する前にブックマークを選択する必要があると思います。既存のグラフがあればそれを削除する必要があるかもしれません。

テストされていないが、私はあなたがこのような何かが必要だと思う:

Dim wdRange as Word.Range 
Set B = YMDoc.Bookmarks(ddd) 
Set wdRange = B.Range 

YMApp.Selection.GoTo What:=wdGoToBookMark, Name:=B.Name 

' Delete existing shapes & bookmark if any: 
On Error Resume Next 
YMDoc.ShapeRange(1).Delete 
wdRange.Delete 
On Error GoTo 0 
YMApp.Selection.PasteSpecial DataType:=wdPasteMetafilePicture, Placement:=0 'Or 1 

'Add the bookmark back in place: 
MDoc.Selection.Bookmarks.Add Name:=ddd, wdRange 
+0

この提案をありがとう:あなたが正しいかもしれない - 配置引数はブックマークオブジェクトを受け入れていません。コードをデバッグした後、最後のステートメントで最初のブックマークが使用できなくなったというエラーが表示されました。チャートは単語文書の冒頭にありました。私が言ったように私は専門家ではない(私はVBAの経験はあるが、この "単語オブジェクト、しおり"などでは十分ではない。)何か他に提案してもらえますか? – Georgy

+0

あなたは正しいです。 YMDoc.Bookmarks.Add ddd、wdRange' –

+0

すべてが「綺麗」に見えますが、プレースメントは私が欲しい場所ではありません。このコードでは、グラフの配置はカーソルの位置です。= wdPasteMetafilePicture、配置::= 0「または1 – Georgy

関連する問題