1

smeoneがこれについて私を助けてくれることを願っています。手動で行うのと同じように、コードを使用して、Excelからdtaを取得してパワーポイントチャートに貼り付けたいと思います。さまざまな顧客集団向けに頻繁に作成する標準プレゼンテーションの作成を自動化したいと考えています。(私はSASでデータを処理し、SASから毎回同じタブとフォーマットを持つExcelファイルにデータをエクスポートしています)

添付のマクロを作成することができました。これは、ダミーの日付を使用してどのように機能するかを確認するための最初の試みであり、他のWebソースから自由にコピーしました。それまでは動作しています。それはパワーポイントを開き、私のテンプレートでページを作成し、適切なタイプのチャートを追加します。そのチャートのデータシートが開きます。問題は、データを貼り付けることができないことです。

私はソースエクセルシートを適切に参照していないので、VBAは(そうあるべきですが)混乱していると思います。誰かが私がそれをする方法を説明できますか?

最終的には、これを変更して既存のグラフを開き、新しいデータを貼り付ける予定です。Iratherは、コードですべてを実行するフォーマットを1回実行するためです(基本プレゼンテーションも準備できています)。ただし、データを貼り付けることができる必要があります。

このサイトや他の場所にExcelからPPTにグラフをコピーする方法の例がたくさんありますが、私はそれをしたくありません。必要に応じて作成後に必要に応じて変更できるように、PPTにデータを保存してもらいたいです。しかし、私が達成したいことを実行するものを見つけられませんでした。

重要な場合は、Office2010を使用しています。

私を助けてくれる人に事前に感謝します。

マリオ

サブテスト()

Set ObjPPT = CreateObject("PowerPoint.Application")
Set ObjPresentation = ObjPPT.Presentations.Add
ObjPresentation.ApplyTemplate ("C:\Documents and Settings\ewnym5s\My Documents\Tools\Clean PPT Page.potx")
Set ObjSlide = ObjPresentation.Slides.Add(1, 12)
Set mychart = ObjSlide.Shapes.AddChart(xlBarClustered, 200, 200, 500, 200).Chart

Set wb = mychart.ChartData.Workbook
Set ws = wb.Worksheets(1)
ws.ListObjects("Table1").Resize ws.Range("A1:D6")


Sheets("Sheet1").Select
Range("A1:D6").Select
Selection.Copy

'The macro works perfectly up to here. The data is on Excel Sheet1 A1:d6 and it needs to be pasted to the same range on Sheet1 of the PPT data sheet.

'I can see the data is selected and copied if I switch windows while stepping through the code. Just the paste part is not working.

ws.Range("A1").Paste
4

2 に答える 2

0

.value パラメータを使用して、異なる範囲の値を設定できます。ただし、これはセルの値を設定するだけで、書式設定は保持されません。グラフのデータのみであれば問題ありません。とにかく、後でいつでもVBAでフォーマットを適用できます。値の設定は、Excel VBA でのコピー アンド ペーストよりもはるかに効率的です。

ソースと宛先は両方とも Excel の範囲であるため、次のように動作します。

ws.Range("A1:D6").Value = Range("A1:D6").Value
于 2012-10-11T10:13:35.723 に答える