2011-06-10 86 views
2

此代码打印出来的字体大小列表组合框的每个条目在Excel 2007中:获取字体大小列表在Powerpoint中VBA

Sub FontSizeList() 

Dim combo As CommandBarComboBox 

Dim i As Integer 
Dim j As Integer 

For i = 1 To Application.CommandBars("Formatting").Controls.Count 
    If Application.CommandBars("Formatting").Controls(i).Caption = "&Font Size:" Then 
     Set ctl = Application.CommandBars("Formatting").Controls(i) 
     For j = 1 To ctl.ListCount 
      Debug.Print ctl.List(j) 
     Next j 
    End If 
Next i 

End Sub 

然而,当我在2007年简报运行相同的代码列表是空的?如何初始化Powerpoint VBA中的字体大小组合框?我检查了字体大小属性“可见”和“启用”,它们都设置为True。

非常感谢

+0

你没有使用Option Explicit吗?如果没有,那么你肯定会后悔有一天...... – 2011-06-10 15:20:20

+0

刚刚在PowerPoint 2003中运行它,在那里工作正常... – 2011-06-10 15:22:23

+0

谢谢,是的,我使用'Option Explicit'。我正在使用Powerpoint 2007 – 2011-06-13 09:09:26

回答

2

我试过你的代码在Excel和PowerPoint 2007中

在PowerPoint中的FontList和字号是不可选择的(深灰色),如果没有文字集团(或绘图)被选中。这可以解释为什么在调试时ListCount仍然为0。

这也可以解释为什么它在PPT 2003上工作,因为您没有功能区,可能FontSize和FontList已被选中。

不幸的是,即使在选择一个区块文本时,我也没有设置ListCount> 0.我不得不进一步查看它。

最大

+0

感谢JMax - 是的,那就是我需要...即使在选择一个形状并启用字体大小列表后,字体大小列表未填充。 – 2011-06-20 09:47:33

+0

我没有办法自己做。也许你可以试试这个解决方案:http://vbaexpress.com/forum/showthread.php?t=37338。顺便说一句,我试过这个解决方案,它的工作:http://www.pptfaq.com/FAQ00594.htm。希望它可以帮助。 – JMax 2011-06-20 14:56:23

+0

感谢http://vbaexpress.com/forum/showthread.php?t=37338链接,好像我必须去老派! – 2011-06-22 14:12:58