次のコードを検討してください
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
上記のように、アラビア語のテキストのフォントは変更されていません。テキストボックスに英語のテキストが含まれている場合、フォントの変更はうまく機能します。アラビア語と英語のテキストが混在している場合、英語のフォントは変更されますが、アラビア語のテキストはデフォルトのフォント(つまり、Arial)のままになります。
このコードはOffice2003で正常に機能していましたが、Office2007/2010で実行しようとしたときにこの問題が発生しました。指定しようとしているフォントがコンピューターにインストールされていることを再確認しました。
私はアラビア語のスクリプト言語(アラビア語/ウルドゥー語/ペルシア語など)のみでテストしましたが、この問題はラテン文字以外の言語を扱うときに発生すると思います。
助言がありますか?msofficeの新しいバージョンのバグのようです。
PS。@Steve(.LanguageID = msoLanguageIDArabic
)によって提案されたようにテキストボックス言語を設定しても効果はありません:(