2012-09-29 2 views
0

나는 새로운 번호를 표시하는 파워 포인트로 슬라이드를 만드는 데 관심이 있습니다. theres 새로운 하루 또는 시간 (자정) 경우 모양. 나는 자바 프로그래밍을 알고 있지만 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 

파일이 항상 열리고 절대로 닫히지 않으므로 연속 루프를 수행하려고 생각하고있었습니다.

또는 하루 중 몇 초를 카운트 다운하려면 타이머를 사용해야합니까?

+0

파워 포인트 파일이 항상 열려 있지 않으면 아마 절대로 발사되지 않습니다. 요일을 계산하는 경우 해당 이벤트에서 파일이 열려있을 때 계산하십시오. 다음은 좋은 링크입니다. http://msdn.microsoft.com/en-us/library/office/ee814734.aspx – Jesse

+0

파일이 항상 열려 있기 때문에 연속 루프가 생각됩니다. 새로운 날이 오면 슬라이드의 숫자가 늘어나기를 원합니다. 기본적으로 자사의 지속적인 데이 카운터. CDC. – user1708399

+0

나는 물어야한다 - 조금 유스 케이스를 설명 할 수 있겠습니까? 영원히 열리는 PowerPoint 프레젠테이션을 매일 업데이트하면 이상하게 보일 것입니다. 반면 앱에서 이것을 구현하는 것이 훨씬 쉽습니다. – Mathias

답변

0

Excel과 달리 PowerPoint에는 여기에 도움이 될 OnTimer이 없습니다.

루프를 만들면 프로세서가 100 % 소모됩니다. 당신은 아마 그것을 원하지 않을 것입니다.

반복 할 때마다 Sleep()을 호출하면 프로세서 시간이 보존되지만 응용 프로그램은 무책임하게됩니다. 당신도 아마 원하지 않는다고.

정말 타이머를 설정해야합니다. VSTO 추가 기능을 작성하는 것은 당신이 괜찮다면, 단지 다른 VBA에서 자신의 일을하기 위해선, Timer 클래스를 사용

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 
0

당신은 프레젠테이션의 모듈이 포함 할 수 있습니다. , 분명히

Sub OnSlideShowPageChange(ByVal SSW As SlideShowWindow) 
    MsgBox (SSW.View.Slide.SlideIndex) 
End Sub 

을 현재 날짜/시간 텍스트를 업데이트하는 코드로있는 MsgBox 문을 대체 : 그것은 슬라이드 쇼 중에 모든 슬라이드 변화에 실행됩니다.

이것은 PPT 2010에서 작동하며 Office 97만큼 멀리 돌아가지만 문서화/지원되지 않으므로 MS는 우습 소리가 날 때마다 제거 할 수 있습니다. Mac에서 PPT로 작동하는지 여부는 알 수 없습니다.