软件注册站
热情软件屋

 
Excel中如何做一个列表框将Windows所有可用字体列出来
编号: QA002427    
建立日期: 2000年1月11日 最后修改日期: 2000年4月11日
所属类别: 其他语言 - Office开发
   
    本问题涉及的操作系统: win98
    本问题涉及的编程工具 excel97/2000 ,VBA
    我用excel的vba编程,想做一个列表框将windows所有可用字体列出来以供选择,如何获得windows中所有可用的字体?excel的vba中没有相应的属性;word中有fontnames属性,我已经在word中实现了这个功能,但是感到运行起来太慢了。在excel中如果靠引用word的话,也能实现,但是速度太慢。我猜想是否有专门的windows API来实现这个功能?是否用到某个dll?如何引用???(谢正武)
   
    API函数EnumFonts就是用来获得字体的,但这个函数调用起来比较复杂,而且好象VBA不支持AddressOf,调用这个函数有困难。
    我建议你使用VB编写一个ActiveX DLL或ActiveX控件,然后在Excel中调用。VB的Screen和Printer对象都有Fonts数组可以方便地得到字体。
    我以前也写过一个控件(共享软件)专门用来选择字体的,应该可以在Excel中使用。参见:http://china.zealsoft.com/cn/fontbox/
    佚名的意见:
     VERSION 5.00
     Begin {C62A69F0-16DC-11CE-9E98-00AA00574A4F} ShowFont
     Caption = "显示字体"
     ClientHeight = 3225
     ClientLeft = 45
     ClientTop = 330
     ClientWidth = 3705
     OleObjectBlob = "ShowFont.frx":0000
     StartUpPosition = 1 '所有者中心
     End
     Attribute VB_Name = "showfont"
     Attribute VB_GlobalNameSpace = False
     Attribute VB_Creatable = False
     Attribute VB_PredeclaredId = True
     Attribute VB_Exposed = False
    
     Private Sub UserForm_Initialize()
     ListBox1.Clear
     Set fontlst = Application.CommandBars("Formatting").FindControl(ID:=1728)
     Dim i As Integer
     For i = 1 To fontlst.ListCount - 1
     ListBox1.AddItem fontlst.List(i + 1)
     Next
     End Sub

    

此问题由李海回答。

附加关键字:编程, 源程序, programming, source code, 其他语言, asm, vba, vbscript, Office开发, office, ms office, office xp, office 97

   
 
把这个问题推荐给朋友
   
 
   
您的意见类别
您的名字
您的电子邮件
您的建议(请尽可能详细)
 
 

版权所有 1997-2008 热情软件屋
如果您有任何建议和意见, 请给我发个电子邮件 askpro@china-askpro.com
Web Designed by ZebraStudio