Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net 尝试用VB编写一个简单的程序,检查系统的时间值(现在),如果是午夜,则增加一个数字_Vb.net_Powerpoint 2010 - Fatal编程技术网

Vb.net 尝试用VB编写一个简单的程序,检查系统的时间值(现在),如果是午夜,则增加一个数字

Vb.net 尝试用VB编写一个简单的程序,检查系统的时间值(现在),如果是午夜,则增加一个数字,vb.net,powerpoint-2010,Vb.net,Powerpoint 2010,我感兴趣的是用powerpoint制作一张幻灯片,如果有新的日期或时间(午夜),它只会在形状中显示一个新的数字。我知道java编程,但现在已经6年多没做过编程了。我从来没有真正使用过VB Dim CurrentTime = TimeValue(now) Sub If CurrentTime.Now = TimeValue(24:00:00) Then updateNum; i = i+1 'Then I would like to display 'i' in a shape

我感兴趣的是用powerpoint制作一张幻灯片,如果有新的日期或时间(午夜),它只会在形状中显示一个新的数字。我知道java编程,但现在已经6年多没做过编程了。我从来没有真正使用过VB

Dim CurrentTime = TimeValue(now)

Sub If CurrentTime.Now = TimeValue(24:00:00)
 Then updateNum;
      i = i+1

'Then I would like to display 'i' in a shape on powerpoint.

End Sub
正在考虑进行连续循环,因为文件将始终处于打开状态,并且永远不会关闭


或者我应该使用计时器倒计时一天中的秒数,然后增加数字?

与Excel不同,PowerPoint没有
OnTimer
,这在这里会有所帮助

仅进行循环将导致100%的处理器消耗。你可能不想那样

调用每个迭代将保留处理器时间,但会使应用程序不响应。你可能也不想要

所以你真的应该设置一个计时器。如果您可以编写VSTO加载项,则只需使用Timer类,否则在VBA中自己创建一个:

Option Explicit

Private Declare Function SetTimer Lib "user32.dll" (ByVal hwnd As Long, ByVal nIDEvent As Long, ByVal uElapse As Long, ByVal lpTimerFunc As Long) As Long
Private Declare Function KillTimer Lib "user32.dll" (ByVal hwnd As Long, ByVal nIDEvent As Long) As Long

Private hTimer As Long
Private PrevDate As Date

Public Sub StartTimer()
  If hTimer = 0 Then
    hTimer = SetTimer(0, 0, 1000, AddressOf TimerProc)
  End If
End Sub

Public Sub StopTimer()
  KillTimer 0, hTimer
  hTimer = 0
End Sub


Private Sub TimerProc(ByVal hwnd As Long, ByVal uMsg As Long, ByVal nIDEvent As Long, ByVal dwTime As Long)
  Dim CurDate As Date

  CurDate = Date
  If CurDate > PrevDate Then
    PrevDate = CurDate
    'Put your display code here
  End If
End Sub

您可以将其包含在演示文稿的模块中。在幻灯片放映过程中,每次更改幻灯片时都会触发:

Sub OnSlideShowPageChange(ByVal SSW As SlideShowWindow)
  MsgBox (SSW.View.Slide.SlideIndex)
End Sub
显然,用代码替换MsgBox语句,以使用当前日期/时间更新文本


这在PPT 2010中有效,应该可以追溯到Office 97,但没有文档记录/支持,因此MS可能会在突发奇想时将其删除。我不知道它在Mac上的PPT中是否有效。

除非powerpoint文件始终打开,否则它可能永远不会启动。如果要计算天数,只需在相应事件中打开文件时计算即可。这里有一个很好的开始链接:文件将始终处于打开状态,这就是为什么我认为是一个连续循环。当这是新的一天,我希望幻灯片上的数字增加。基本上它是一个连续的日计数器。CDC,我得问一下-你能解释一下这个用例吗?永久打开PowerPoint演示文稿,每天更新一个数字似乎有些奇怪,而在应用程序中实现这一点要容易得多。