2012-02-27 5 views
3

Excel VBAで少し問題があります(もう一度...)。シェイプを別のワークシートにコピーするにはどうすればいいですか?

ワークシートから別のワークシートへのシェイプ(実際には「テンプレート」シェイプ、レイアウトは事前定義されています)をコピーしたいだけです。

私はマクロを記録する場合、これは、生成されたVBAコードです:もちろん

Sheets("Layout").Select 
    ActiveSheet.ChartObjects("CHART_TEMPLATE").Activate 
    ActiveChart.ChartArea.Copy 
    Sheets("Example").Select 
    Range("A1").Select 
    ActiveSheet.Paste 

、私はパフォーマンスの問題のために、すべての".Select"方法を取り除きたいです。このような理由から、私ができないSelect範囲は、残念ながらActiveSheet.Paste

を使用していないどちらも、Paste方法はWorksheetオブジェクト(ActiveSheet.Pasteのような)のために存在するので、私はRangeオブジェクトのPasteSpecial方法を使用する必要がありました。写真は...もちろん は私が写真を望んでいないとして、私はデータを持つものChartsを移入する必要があるため、

ThisWorkbook.Sheets("Layout").ChartObjects("CHART_TEMPLATE").Copy 
    ThisWorkbook.Sheets("Example").Range("A1").PasteSpecial Paste:=xlPasteAll 

しかし、PasteSpecial方法コピーShapes

は、だからここに私のコードです。

ここでヒントをお持ちですか?

Thanx、

+0

ペースト方法は、引数として宛先を取ることができます。 'ThisWorkbook.Sheets(" Example ")のようなものを試しましたか?貼り付け先:= ThisWorkbook.Sheets(" Example ")。Range(" A1 ")'? – assylias

+0

ありがとう、それは魅力のように動作します! –

+0

私はあなたが問題を閉じることができるように答えを掲載しました。 – assylias

答えて

4

ペースト方法では、宛先として引数を取ることができます。このようなことを試しましたか?

ThisWorkbook.Sheets("Example").Paste Destination:=ThisWorkbook.Sheets("Example").Range("A1")