 |
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。
|