2017-02-01 25 views
1

ExcelからグラフをPowerPointに貼り付けるVBAマクロがあります。ExcelからPowerpointへのフォント書式設定を維持

同じワークシートの特定のセルのセル内容をPowerPointにコピーするようにマクロを調整しました。マクロをコピーする前に、PowerPointテンプレートと同じフォントサイズに設定しても(40ポイント)、マクロは実行前にExcelで設定した40ポイントではなく18ポイントで貼り付けられます。

次のようにこのすべてを処理するコードは次のとおりです。

'Opens a new PowerPoint presentation based on template and pastes data into Slide 2 of Powerpoint from Excel 

Dim PPApp As PowerPoint.Application, PPPres As PowerPoint.Presentation, PPSlide As PowerPoint.Slide, PPShape As Object, PPChart As Object 

Dim XLws As Worksheet 

Set XLws = ActiveSheet 
Set PPApp = New PowerPoint.Application 
Set PPPres = PPApp.Presentations.Open("C:\Users\Colin\Dropbox (Edge45)\Edge45 Team Folder\Edge45 Company Documents\Templates\Powerpoint Templates\Edge45 Monthly Report Template Macro.potm", Untitled:=msoTrue) 
PPApp.Visible = True 
Set PPSlide = PPPres.Slides(12) 

XLws.ChartObjects(1).Copy ' or XLws.ChartObjects("Chart 2").Copy 
Set PPChart = PPSlide.Shapes.PasteSpecial(DataType:=ppPasteDefault) 

With PPChart 

.Left = 18 
.Height = 322 
.Top = 121 
.Width = 531 

End With 

'Copies Contents of Cells Q36 and R36 in excel worksheet and pastes as text into slide 13 of presentation 
    XLws.Range("Q36:R36").Copy 
    Set PPChart = PPSlide.Shapes.PasteSpecial(DataType:=ppPasteDefault) 

Set PPSlide = PPPres.Slides(13) 
+0

何の貼り付けについて画像/画像として? – Namkce

+0

はい、私はそれを行うことを嬉しく思っていますが、最初に、内部ボーダーを指定しないにもかかわらず2つのセルの間にライン分割が含まれていて、次にコピーしているテキストにドロップシャドウをしたいと思います。それはイメージペーストから、そうすることを喜んで! – Superhans

+0

XLws.Range( "Q36:R36")のデータを貼り付ける前にスライド13にPPSlideを設定する必要はありませんか? – mooseman

答えて

0

コリン、

あなたはそれをコピーした後、バックフォントサイズを変更していますか?たぶんそれは自動的にリンク/更新されます。

手動で私はあなたが何をしているかをより正確に模倣するために、次の記事で参照ExecuteMsoコマンドを使用してお勧めしたいのペーストオプションのいずれかを使用して、それをコピーすることができた場合:

How to copy a chart from Excel to PowerPoint?