2017-12-19 4 views
0

ziehen Ich mache einen zufälligen Wortgenerator für den Einsatz in meiner Global Studies-Klasse für ein Spiel mit dem kyrillischen Alphabet. Ich habe ein VBA-Setup für PowerPoint 2016 gefunden, um zufällige Wörter aus einer Textdatei zu ziehen. Das Problem ist, dass das Kyrillische nicht angezeigt wird. Ich habe versucht, die Codierung in den VBA-Tools zu ändern. Ich habe versucht, verschiedene Kodierungseinstellungen für die TXT-Datei zu versuchen, aber ich kann nicht scheinen, tatsächlich kyrillische Buchstaben im Etikett zu bekommen.VBA - Wie können Sie kyrillischen Text in Powerpoint Label von .TXT Datei

Der VBA-Code, ich verwende ist:

Public myArray, Word1 
Sub OnSlideShowPageChange(ByVal SSW As SlideShowWindow) 
    If SSW.View.CurrentShowPosition = 2 Then 
     Randomize 
     Label1.Caption = "" 

     Dim path 
     path = ActivePresentation.path & "\words.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) 
    Label1.Caption = myArray(Word1) 
End Sub 

Private Sub Label1_Click() 
End Sub 
+0

Sehen Sie, wenn dies Ihre Frage beantwortet. https://stackoverflow.com/questions/17698260/ms-word-vba-to-display-unicode-strings/17699668#17699668. Es ist wahrscheinlich ein Textcodierungsproblem, z.B. ASCII vs Unicode. –

+0

Danke. Das einzige ist, dass ich, da ich kein Programmierer bin, nicht weiß, wie ich diese Informationen in das, was ich verwende, einfließen lassen würde. Ich verwende Code, der von einem YouTube-Video zur Verfügung gestellt wird, damit Lehrer in ihren Kursen verwenden können, ohne zu wissen, wie sie programmieren sollen. – Kazimierz

+0

Damit VBA korrekt mit Unicode funktioniert, müssen Sie Windows-Systemänderungen vornehmen. Sie müssen die Sprache für die Nicht-Unicode-Programme ändern. – PatricK

Antwort

0
Try reading a line at a time from the file rather than using LOF: 

Function FileToString(sFileName as string) as String 

    Dim FileNum As Integer 
    Dim sBuf As String 
    Dim sTemp as String 

    FileToString = False ' by default 

    If ExistFile(sFileName) Then 
     FileNum = FreeFile 
     sTemp = "" 
     Open sFileName For Input As FileNum 

     While Not EOF(FileNum) 
      Line Input #FileNum, sBuf 
      sTemp= sTemp & sBuf & vbCrLf 
     Wend 

     Close FileNum 
     FileToString = sTemp 

End Function 
Verwandte Themen