私は担当している月次レポートプレゼンテーションの作成を容易にするためのワークブックを作成しました。ワークブックにはいくつかのデータシートといくつかの処理シートがあり、対応するスライドに貼り付けるために必要なチャートが含まれています。これまでは、PowerPointテンプレートを開き、各Excelシートをループし、どのシート名が数値であるかを識別し、PowerPointテンプレート上の対応するスライドをアクティブにするためのVBAを構築しました。ExcelシートからPowerpointスライドへのすべてのチャートのコピー
同様の問題の他の解決策とは異なり、各シート/スライドの形状、量、配置が異なるため、一度に各番号のシートから各スライドにすべてのチャートをコピーしたいと思います。私はたいてい、一度に1つのチャートをコピーしてイメージとして貼り付ける人たちしか見つけませんでした。私にとってはうまくいかないでしょう(私はデータ・ラベルと最終スライド上の位置を微調整する必要があります)。どのように私はそれを達成することができますかについてのヒント?ここで
は私のコードは、これまでのようになります。あなたは、対応するスライドに各シートのチャートオブジェクトを貼り付けることができ、以下の変更されたコードで
Sub CriarSlides()
Dim pptApp As Powerpoint.Application
Dim pptPres As Powerpoint.Presentation
Dim strFileToOpen As Variant
Dim strFileName As String, Hosp As String
Dim datawb As Workbook
Dim xlsCounter As Integer, xlsSlide As Integer
Set datawb = ThisWorkbook
strFileToOpen = Application.GetOpenFilename _
FileFilter:="Powerpoint Files *.pptx (*.pptx),")
If strFileToOpen = False Then
Exit Sub
Else
Set pptApp = New Powerpoint.Application
pptApp.Visible = True
pptApp.Presentations.Open Filename:=strFileToOpen, ReadOnly:=msoFalse, Untitled:=msoTrue
Set pptPres = pptApp.Presentations(1)
End If
For xlsCounter = datawb.Worksheets.Count To 1 Step -1
If IsNumeric(datawb.Worksheets(xlsCounter).Name) Then
xlsSlide = datawb.Worksheets(xlsCounter).Name
' This is the problematic part
Debug.Print xlsSlide
End If
Next xlsCounter
End Sub
1)どのようにすることができますシートの名前が既存のスライドに対応していることを確認します。2)シートごとに多数のチャートがあり、同じスライドにペーストしたくないので、どのように処理しますか? 3)チャートオブジェクトごとにスライドを単に追加するだけの方が簡単ではありませんか? –
私はシートごとに多くのチャートを持っています(最大4)、それらはすべて同じスライドに貼り付ける必要があります。私がこれではっきりしていない場合は申し訳ありません。ここでは例があります:シートの名前は「8」となっています。そのため、スライドのテンプレートはすべてスライド8に貼り付ける必要があります。また、スライドのテンプレートが長時間にわたって存在していたため、チャートは毎月手動でペーストされています。 –