通过 VBA 在 PowerPoint 中读取 UTF-8 文本

问题描述 投票:0回答:2

我想使用 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 字符串?

Power Point 截图

vba string utf-8 powerpoint non-ascii-characters
2个回答
0
投票

不要使用

MsgBox
,而是使用
UserForm
创建一个简单的
Label
Label
允许配置文本属性,因此您可以选择适当的字体来正确显示字符。


0
投票

PowerPoint/VBA 可以在内部使用 UTF-8,但正如 Tim 提到的,无法在消息框/调试窗口中显示 UTF-8 文本。

但是当我向幻灯片添加一些日语文本时,然后执行

Activewindow.Selection.ShapeRange(1).TextFrame.TextRange.Copy

然后我可以粘贴到记事本 UTF-8 文件中并获取正确的文本。

您得到的内容可能会有所不同,具体取决于您对复制的文本所做的操作。

© www.soinside.com 2019 - 2024. All rights reserved.