簡體   English   中英

為 PowerPoint 表格設置默認字體

[英]Set default font for PowerPoint tables

我可以創建包含多個單元格的 PowerPoint 表格,但默認字體(28 磅)太大。 在無法訪問用戶的 PowerPoint 模板的情況下,如何為我創建的表格設置字體? 目前我能做的就是:

  1. 創建表。
  2. 用一個空格填充每個單元格,否則字體更改將被忽略(盡管它使用 PowerPoint UI 工作)。
  3. 創建一個包含所有單元格的范圍並設置字體:

     List<string> names = new List<string>(); foreach (PowerPoint.Column column in table.Columns) foreach (PowerPoint.Cell cell in column.Cells) { cell.Shape.TextFrame.TextRange.Text = ""; names.Add(cell.Shape.Name); } PowerPoint.ShapeRange range = ppt.ActivePresentation.Slides.Item(1).Shapes.Range(names.ToArray()); range.TextFrame.TextRange.Font.Size = 12;

我正在使用 C# 通過其 COM API 控制 PowerPoint 2003..2010。 我的實驗是在 PowerPoint 2003 上進行的。

在 PPT 2010 中,這不需要在單元格中輸入文本(vba,但應該很容易翻譯)。 出於演示目的,我正在使用當前選定的表; 將對該表的任何其他引用替換為 oTbl:

Dim oTbl As Table
Dim lCol As Long
Dim lRow As Long


Set oTbl = ActiveWindow.Selection.ShapeRange(1).Table

With oTbl
    For lCol = 1 To .Columns.Count
        For lRow = 1 To .Rows.Count
            .Cell(lRow, lCol).Shape.TextFrame.TextRange.Font.Size = 28
        Next
    Next
End With

在 PPT2003 中,如您所見,您需要將文本添加到單元格中才能“采用”格式(不幸的是,這會嚴重減慢速度)。

因為在 PPT 自動化中還有其他實例,您可能需要臨時填充文本然后將其刪除,所以您可能需要編寫一個更通用的例程,您可以將形狀傳遞給它。

With Shape.TextFrame.TextRange
  If Len(.Text) = 0 Then
    .Text = "!@#$%" ' or some other lunatic string not likely to be found in nature
  End If
End With

用這個“預處理”形狀,做任何必要的事情,然后用一個伴隨程序“取消處理”它,測試文本是否=“!@#$%”,如果是,則將其設置回“”,否則就別管它了。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM