Amm*_*mar 7 fonts powerpoint vba powerpoint-vba
请考虑以下代码
With ActivePresentation
Set sldNewSlide = .Slides.Add(.Slides.Count + 1, ppLayoutBlank)
With sldNewSlide
Set shpCurrShape = .Shapes.AddTextbox(msoTextOrientationHorizontal, 25, 50, 50, 200)
With shpCurrShape
With .TextFrame.TextRange
'------------ Below is an ARABIC string
.Text = ChrW$(&H6A9) & ChrW$(&H64A) & ChrW$(&H641) & " " & ChrW$(&H62D) & ChrW$(&H627) & ChrW$(&H644) & ChrW$(&H643)
With .Font
.Name = "someFontName" '-------------- THIS LINE IS NOT WORKING
.Size = 65
End With
End With
End With
End With
End With
Run Code Online (Sandbox Code Playgroud)
如上所述,阿拉伯语文本的字体未被更改.当文本框包含英文文本时,字体更改效果很好.如果有混合的阿拉伯语和英语文本,英语字体会更改,但阿拉伯语文本保持默认字体(即Arial).
此代码在Office 2003中运行正常,但在尝试在Office 2007/2010中运行时遇到此问题.我已仔细检查,我试图指定的字体已安装在计算机上.
虽然我只测试了阿拉伯语脚本语言(arabic/urdu/persian等),但我想在处理任何非拉丁语脚本语言时会出现这个问题.
有什么建议?似乎是ms office的后续版本中的一个错误.
PS.按照@Steve(.LanguageID = msoLanguageIDArabic)的建议设置文本框语言没有效果:(
我自己找到了答案。对于不同的脚本,类中有不同的Name属性Font。这是所有成员的名单Font。就我而言,我必须使用NameComplexScript财产。合并此更改后,代码的工作方式就像一个魅力
.Font.NameComplexScript = "someFontName"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2302 次 |
| 最近记录: |