【发布时间】:2019-12-07 15:20:29
【问题描述】:
我目前有一个 PowerPoint 演示文稿,它在计算机上用作某种信息亭或信息屏幕。 它从磁盘上的文本文件中读取它的文本。此文本文件中的文本显示在 PowerPoint 的文本框中,并且每 5 秒刷新一次。这样,我们可以在 PowerPoint 中编辑文本,而无需编辑 PowerPoint 演示文稿本身,因此它将继续运行。 到目前为止工作得很好,只有 PowerPoint VBA 不包含 Application.Wait 函数。在这里查看完整的子:
Sub Update_textBox_Inhoud()
Dim FileName As String
TextFileName = "C:\paht\to\textfile.txt"
If Dir$(FileName) <> "" Then
Application.Presentations(1).SlideShowSettings.Run
Application.WindowState = ppWindowMinimized
While True
Dim strFilename As String: strFilename = TextFileName
Dim strFileContent As String
Dim iFile As Integer: iFile = FreeFile
Open strFilename For Input As #iFile
strFileContent = Input(LOF(iFile), iFile)
Application.Presentations(1).Slides(1).Shapes.Range(Array("textBox_Inhoud")).TextFrame.TextRange = strFileContent
Close #iFile
waitTime = 5
Start = Timer
While Timer < Start + waitTime
DoEvents
Wend
Wend
Else
End If
End Sub
如您所见,我在循环中有一个循环来创建 5 秒睡眠/等待功能,因为 PowerPoint 没有 Application.Wait 功能。
在运行此宏时,我的第 7 代 i5 上的 CPU 负载高达 36%。 kiosk 计算机的硬件稍差,因此 CPU 负载会很高,而且这台 PC 的风扇会发出很大的噪音。
我认为睡眠/等待功能并没有真正“睡眠”,它只是继续循环直到 5 秒过去。
问题 1:我的假设是函数并没有真正休眠吗? 问题 2:如果问题 1 的答案是正确的,是否有更好、更少 CPU 密集型的方法来创建睡眠功能?
【问题讨论】:
标签: vba powerpoint wait sleep