使用VBA更改PowerPoint表格单元格的内部边距和/或数字格式

使用VBA更改PowerPoint表格单元格的内部边距和/或数字格式,vba,powerpoint,Vba,Powerpoint,我有一个VBA循环,它在PowerPoint表格的选定单元格中循环以更新格式。以下几行非常有用: With objTable.Rows(the_row).Cells(the_col).Shape.TextFrame.TextRange.Font .Size = 12 .Color = RGB(0, 0, 102) End With With objTable.Rows(the_row).Cells(t

我有一个VBA循环,它在PowerPoint表格的选定单元格中循环以更新格式。以下几行非常有用:

        With objTable.Rows(the_row).Cells(the_col).Shape.TextFrame.TextRange.Font
            .Size = 12
            .Color = RGB(0, 0, 102)
        End With
        With objTable.Rows(the_row).Cells(the_col).Shape.TextFrame
            .VerticalAnchor = msoAnchorMiddle
        End With

我很难找到修改数字格式(更改小数位数、添加逗号等)和更改单元格内部边距(我可以通过右键单击->格式形状->文本框->内部边距手动执行)的语法。通常我使用“录制宏”选项来获取详细的语法,但我在PowerPoint中看不到该选项。

不幸的是,PPT中不再有“录制宏”选项。您还将发现(正如我所做的那样),对于希望在PPT中工作的有抱负的VBA开发人员来说,可用的资源要少得多。MSDN文档,StackOverflow将是您最好的朋友:)不幸的是,PPT中不再有记录宏选项。您还将发现(正如我所做的那样),对于希望在PPT中工作的有抱负的VBA开发人员来说,可用的资源要少得多。MSDN文档,StackOverflow将是您最好的朋友:)我尝试过这个,但它不起作用,但我突然想到,值可能必须以像素为单位,而不是以英寸为单位……对吗?对于数字格式,数字已经存在,这也可以使用:.TextRange.Text=format(.TextRange.Text,“#,#0.00”)?谢谢我刚刚测试了这两种功能,它们都可以工作(使用像素并发送文本范围值作为Format函数的参数)。非常感谢你的帮助!值是点,不是像素使用VBA函数我试过了,但它不起作用,但我突然意识到值可能必须是像素而不是英寸…对吗?对于数字格式,数字已经存在,这也可以使用:.TextRange.Text=format(.TextRange.Text,“#,#0.00”)?谢谢我刚刚测试了这两种功能,它们都可以工作(使用像素并发送文本范围值作为Format函数的参数)。非常感谢你的帮助!值是点,而不是像素使用VBA函数
With objTable.Rows(the_row).Cells(the_col).Shape.TextFrame

'Internal margin:
        .MarginLeft = 'value goes here
        .MarginRight = 'value goes here
        .MarginTop = 'value goes here
        .MarginBottom= 'value goes here


'number Format:

    .TextRange.text = Format(1000, "#,##0.00") 'replace 1000 with your value

end with