我給你一些想法。可能他們會很有幫助,即使我沒有提供任何代碼。
一般來說,你需要有一些像在演示文稿中「定時器」,這將開始你的簡報和計算使用的時間。不幸的是,在PowerPoint中沒有這樣的東西。你可能會使用一些外部解決方案,如C#COM插件,但它非常複雜。
您可以使用PP應用程序事件,但汽車的值不會每分鐘更改,但您輸入的每個新滑動或任何其他事件觸發(如反向移動等)。這有點複雜,但在我們(StackOverflow用戶)的知識範圍內。
您可以搜索或根據那link詢問我曾經在哪裏找到很多有趣的想法。
我承諾提供解決方案,因此我想這樣做,即使問題已關閉。因此,我通過重新編輯我希望允許的答案來做到這一點。
我們必須確定在每張幻燈片上放置了「計數值」的「文本框」。將以下代碼添加到Module 1中並運行它。
Sub Add_CarValue_Text()
Dim SLD As Slide, SHP As Shape, shCarValue As Shape
Dim boCarValue As Boolean
For Each SLD In ActivePresentation.Slides
For Each SHP In SLD.Shapes
If SHP.Name = "CarValue" Then
boCarValue = True
Exit For
End If
Next
If Not boCarValue Then
Set shCarValue = SLD.Shapes.AddTextbox(msoTextOrientationHorizontal, 0, 0, 150, 50)
With shCarValue
.Name = "CarValue"
.TextFrame.TextRange.Text = "Cars counter: "
End With
End If
boCarValue = False
Next
End Sub
添加新的類模塊並將代碼放在下面的代碼中。如有必要更改。
Public WithEvents PPApp As Application
Private TimerStart As Long
Private Const increasePerMinute = 1000
Private Sub PPApp_SlideShowBegin(ByVal Wn As SlideShowWindow)
TimerStart = Int(Timer)
End Sub
Private Sub PPApp_SlideShowNextSlide(ByVal Wn As SlideShowWindow)
If Not Wn.View.Slide.Shapes("CarValue") Is Nothing Then
Dim Lap As Integer
Lap = (Int(Timer) - TimerStart)/10 'change for 60 to change from 10sec to 1 min
Wn.View.Slide.Shapes("CarValue").TextFrame.TextRange = "Cars volume: " & Lap * increasePerMinute
End If
End Sub
將以下代碼添加到Module2並運行該過程。
Public tmpPPApp As New AppClass
Sub StartUp()
Set tmpPPApp.PPApp = PowerPoint.Application
End Sub
開始您的演示文稿。
重要!如果您更改代碼中的任何內容,請再次運行第3步。此外,爲了以防萬一,您需要在午餐前始終運行程序3。
我不確定這是否更適合超級用戶 – 2013-03-15 08:21:52
不確定它是否屬於[su],但它不適合[so](至少不在當前狀態),請參閱[faq]。 – Dukeling 2013-03-15 08:27:53
好吧,我的壞,我認爲這是一個可以問的實際問題。 – user1314776 2013-03-15 08:32:24