2017-03-16 8 views
1

ブック内のテーブル名の配列をループする次のコードブロックがあります。これは呼び出し元のプロシージャ(コールバック)からのParamArrayです。各テーブルをコピーしてpptスライドに貼り付けます。次に、テーブルのタイトルであるテキストボックスを作成します。私はpptスタイルを使いたいので、あて先スタイル(これはデフォルトだと思う)を使って貼り付けています。 Excelから貼り付けるオブジェクトはテーブルです。貼り付け後の表のスタイルを変更して、最初の行を太字にするにはどうすればよいですか? PowerPointの表スタイルを変更することは十分に文書化されていないようです。私は下のコメント部分を試しましたが、うまくいきませんでした。ありがとうございました!PowerPointのExcelでの表形式のスタイル

For i = LBound(vObjects(0)) To UBound(vObjects(0)) 
     Set practice = ActiveWorkbook.Worksheets(Range("T_" & vObjects(0)(i)).Parent.Name).ListObjects("T_" & vObjects(0)(i)) 
     practice.Range.Copy 
     PPT_Slide.Shapes.Paste 'Special DataType:=ppPasteOLEObject, Link:=msoTrue 
     Set PPT_Shape = PPT_Slide.Shapes(PPT_Slide.Shapes.Count) 
     PPT_Shape.Name = "OBJ_" & vObjects(0)(i) 
'  With PPT_Shape 
'   .ApplyStyle "{C083E6E3-FA7D-4D7B-A595-EF9225AFEA82}", True 
'   .Rows(1).Font.Bold = True 
'  End With 
     Set objPPT_MilestoneTextbox = PPT_Slide.Shapes.AddTextbox(1, Left:=320, Top:=HorizontalTop, Width:=300, Height:=50).TextFrame.TextRange 
     With objPPT_MilestoneTextbox 
      .Text = vObjects(0)(i) 
      .Font.Size = 14 
      .Font.Bold = True 
      .ParagraphFormat.Alignment = 2 
     End With 
     Set PPT_Shape = PPT_Slide.Shapes(PPT_Slide.Shapes.Count) 
     PPT_Shape.Name = "CAP_" & vObjects(0)(i) 
    Next i 
    Application.CutCopyMode = False 

答えて

1

このMSのページには、PPT 2010用のテーブル形式のIDを文書(と彼らはそれ以降のバージョンで同じではないかもしれないことを指摘):

https://code.msdn.microsoft.com/office/PowerPoint-2010-Interact-ea2fbe1b

しかし、あなたはスタイルを適用する必要がありますシェイプ自体にではなく、シェイプの.Tableオブジェクトに追加します。このようにコードを修正してみてください:

Dim otbl As Table 
Set PPT_Shape = PPT_Slide.Shapes(PPT_Slide.Shapes.Count) 
Set otbl = PPT_Shape.Table 
With otbl 
    .ApplyStyle "{C083E6E3-FA7D-4D7B-A595-EF9225AFEA82}", True 
End With 
+0

パーフェクト!ありがとう、スティーヴ。 – Brian

関連する問題