我想使用 VBA 读取 PowerPoint 文件中的所有文本。
我写了这段代码:
Sub ReadFileText()
On Error Resume Next
Dim shp As Shape
For Each sld In ActivePresentation.Slides
For Each shp In sld.Shapes
If shp.TextFrame.HasText Then
MsgBox shp.TextFrame.TextRange.Text
End If
Next shp
Next sld
End Sub
某些形状在文本中包含非 ASCII (UTF-8) 字符。 VBA 将它们返回为“?”性格!
如何将形状文本读取为 UTF-8 字符串?
不要使用
MsgBox
,而是使用 UserForm
创建一个简单的 Label
。 Label
允许配置文本属性,因此您可以选择适当的字体来正确显示字符。
PowerPoint/VBA 可以在内部使用 UTF-8,但正如 Tim 提到的,无法在消息框/调试窗口中显示 UTF-8 文本。
但是当我向幻灯片添加一些日语文本时,然后执行
Activewindow.Selection.ShapeRange(1).TextFrame.TextRange.Copy
然后我可以粘贴到记事本 UTF-8 文件中并获取正确的文本。
您得到的内容可能会有所不同,具体取决于您对复制的文本所做的操作。