在 PowerPoint 中使用 VBA 显示重音字符
Displaying accented characters using VBA in PowerPoint
我创建了一个 PowerPoint 来显示 this excellent tutorial.
之后的 .txt 文件中的 5 个随机单词
问题是,我的 .txt 文件中的文字是西班牙语,因此带有重音符号。当 PowerPoint 显示它们时,它们看起来已损坏。例如秘鲁看起来像秘鲁。
这是我的代码:
Public myArray, Word1, Word2, Word3, Word4, Word5
Sub OnSlideShowPageChange(ByVal SSW As SlideShowWindow)
If SSW.Presentation.SlideShowSettings.StartingSlide Then
Randomize
Label1.Caption = ""
Label2.Caption = ""
Label3.Caption = ""
Label4.Caption = ""
Label5.Caption = ""
Dim path
path = ActivePresentation.path & "\palabras.txt"
Open path For Input As #1
filecontent = Input(LOF(1), #1)
Close #1
myArray = Split(filecontent, vbCrLf)
End If
End Sub
Private Sub CommandButton1_Click()
Word1 = Int((UBound(myArray)) * Rnd)
Word2 = Int((UBound(myArray)) * Rnd)
Word3 = Int((UBound(myArray)) * Rnd)
Word4 = Int((UBound(myArray)) * Rnd)
Word5 = Int((UBound(myArray)) * Rnd)
Do While Word1 = Word2
Word2 = Int((UBound(myArray)) * Rnd)
Loop
Label1.Caption = myArray(Word1)
Label2.Caption = myArray(Word2)
Label3.Caption = myArray(Word3)
Label4.Caption = myArray(Word4)
Label5.Caption = myArray(Word5)
End Sub
我知道结尾也很乱,不知道怎么弄才让Word3、4、5不重复。这是我第一次使用 VBA.
有人能帮忙吗?
VBA 和 COM 在内部使用 Unicode。但是当与 Windows API VBA 交互时使用 ANSI 作为 Windows 9x 没有 Unicode API 调用。
Open
语句已折旧。它将调用 Windows' CreateFileA
。使用 FileSystemObject
。 https://docs.microsoft.com/en-us/office/vba/language/reference/user-interface-help/openastextstream-method
确保在打开文件时指定 Unicode。
或者将您的非 Unicode 设置设置为西班牙语或其他设置。
Const ForReading = 1, ForWriting = 2, ForAppending = 8
Const TristateUseDefault = -2, TristateTrue = -1, TristateFalse = 0
Dim fso, f, ts
Set fso = CreateObject("Scripting.FileSystemObject")
fso.CreateTextFile "test1.txt" ' Create a file.
Set f = fso.GetFile("test1.txt")
Set ts = f.OpenAsTextStream(ForWriting, TristateUseDefault)
ts.Write "Hello World"
ts.Close
Set ts = f.OpenAsTextStream(ForReading, TristateUseDefault)
TextStreamTest = ts.ReadLine
ts.Close
来自帮助。
Set TS = CreateObject("Scripting.FileSystemObject").GetFile("test1.txt").OpenAsTextStream(1, -1)
x = ts.readall
我创建了一个 PowerPoint 来显示 this excellent tutorial.
之后的 .txt 文件中的 5 个随机单词问题是,我的 .txt 文件中的文字是西班牙语,因此带有重音符号。当 PowerPoint 显示它们时,它们看起来已损坏。例如秘鲁看起来像秘鲁。
这是我的代码:
Public myArray, Word1, Word2, Word3, Word4, Word5
Sub OnSlideShowPageChange(ByVal SSW As SlideShowWindow)
If SSW.Presentation.SlideShowSettings.StartingSlide Then
Randomize
Label1.Caption = ""
Label2.Caption = ""
Label3.Caption = ""
Label4.Caption = ""
Label5.Caption = ""
Dim path
path = ActivePresentation.path & "\palabras.txt"
Open path For Input As #1
filecontent = Input(LOF(1), #1)
Close #1
myArray = Split(filecontent, vbCrLf)
End If
End Sub
Private Sub CommandButton1_Click()
Word1 = Int((UBound(myArray)) * Rnd)
Word2 = Int((UBound(myArray)) * Rnd)
Word3 = Int((UBound(myArray)) * Rnd)
Word4 = Int((UBound(myArray)) * Rnd)
Word5 = Int((UBound(myArray)) * Rnd)
Do While Word1 = Word2
Word2 = Int((UBound(myArray)) * Rnd)
Loop
Label1.Caption = myArray(Word1)
Label2.Caption = myArray(Word2)
Label3.Caption = myArray(Word3)
Label4.Caption = myArray(Word4)
Label5.Caption = myArray(Word5)
End Sub
我知道结尾也很乱,不知道怎么弄才让Word3、4、5不重复。这是我第一次使用 VBA.
有人能帮忙吗?
VBA 和 COM 在内部使用 Unicode。但是当与 Windows API VBA 交互时使用 ANSI 作为 Windows 9x 没有 Unicode API 调用。
Open
语句已折旧。它将调用 Windows' CreateFileA
。使用 FileSystemObject
。 https://docs.microsoft.com/en-us/office/vba/language/reference/user-interface-help/openastextstream-method
确保在打开文件时指定 Unicode。
或者将您的非 Unicode 设置设置为西班牙语或其他设置。
Const ForReading = 1, ForWriting = 2, ForAppending = 8
Const TristateUseDefault = -2, TristateTrue = -1, TristateFalse = 0
Dim fso, f, ts
Set fso = CreateObject("Scripting.FileSystemObject")
fso.CreateTextFile "test1.txt" ' Create a file.
Set f = fso.GetFile("test1.txt")
Set ts = f.OpenAsTextStream(ForWriting, TristateUseDefault)
ts.Write "Hello World"
ts.Close
Set ts = f.OpenAsTextStream(ForReading, TristateUseDefault)
TextStreamTest = ts.ReadLine
ts.Close
来自帮助。
Set TS = CreateObject("Scripting.FileSystemObject").GetFile("test1.txt").OpenAsTextStream(1, -1)
x = ts.readall