実現したいこと
- VBAでして指定秒数毎にサブルーチンを実行したい
発生している問題・エラーメッセージ
コンパイルエラー: メソッドまたはデーターメンバーが見つかりません。
と表示されて動きません。
ここまでは正常に動きました
VBA
1Sub CalculateDate() 2 3 Dim numDays As Integer 4 Dim currentDate As Date 5 6 '38営業日後の日付を表示 7 numDays = 38 8 currentDate = Date 9 For i = 1 To numDays 10 currentDate = DateAdd("d", 1, currentDate) 11 Do While Weekday(currentDate, vbMonday) > 5 Or IsHoliday(currentDate) 12 currentDate = DateAdd("d", 1, currentDate) 13 Loop 14 Next i 15 ActivePresentation.Slides(1).Shapes("lp_real_m").TextFrame.TextRange.Text = Format(currentDate, "mm") 16 ActivePresentation.Slides(1).Shapes("lp_real_d").TextFrame.TextRange.Text = Format(currentDate, "dd") 17 18End Sub 19 20Function IsHoliday(testDate As Date) As Boolean 21 ' 国民の祝日のリストを設定する 22 Dim holidays As Variant 23 holidays = Array("1/1", "1/11", "2/11", "2/23", "3/20", "4/29", "5/3", "5/4", "5/5", "7/18", "8/11", "9/19", "9/23", "11/3", "11/23", "12/23") 24 Dim i As Integer 25 For i = 0 To UBound(holidays) 26 If Format(testDate, "m/d") = holidays(i) Then 27 IsHoliday = True 28 Exit Function 29 End If 30 Next i 31 IsHoliday = False 32End Function
常に最新の日付を表示したいため、
CalculateDateサブルーチンを5秒に1回実行するよう
VBA
1Sub RunEveryFiveSeconds() 2 '5秒毎に実行するサブルーチンの名前を指定 3 Application.OnTime Now + TimeValue("00:00:05"), "CalculateDate" 4End Sub
というコードを1行目に貼り付けたところ、
コンパイルエラー: メソッドまたはデーターメンバーが見つかりません。
というエラーになり、「Sub RunEveryFiveSeconds()」と「.OnTime」がハイライトしています。
ご教示いただけると助かります。
何卒よろしくお願いいたします。
補足情報(FW/ツールのバージョンなど)
PowerPoint
> Application.OnTime Now + TimeValue("00:00:05"), "CalculateDate"
その場合の Application とは(Excel.Application オブジェクトではなく)
PowerPoint.Application オブジェクトです。
> メソッドまたはデーターメンバーが見つかりません。
PowerPoint.Application オブジェクトに OnTime というメソッドはありませんので、
件のエラーが発生します。
VBAの仕様は、アプリケーション毎に異なりますが、PowerPointに、Application.OnTimeが存在することは確認されているのでしょうか?
こちらでざっと調べた限りでは、ExcelとWordでの存在は確認できましたが、PowerPointでの存在は確認できませんでしたが。

回答1件
あなたの回答
tips
プレビュー