0

PowerPoint でループ プレゼンテーションを作成していますが、特定の日付までのカウントダウンが必要です。

以下のコードを使用すると、次のエラーが発生します。

実行時エラー '-2147024809 (80070057)': 指定された値が範囲外です。

Sub Countdown()
Dim thedate As Date
Dim daycount As Long
Dim Icount As Integer
Icount = ActivePresentation.Slides(1).Shapes.Count - 1
thedate = "25/12/2013"
daycount = DateDiff("d", Now, thedate)
Select Case daycount
    Case Is > 1
        ActivePresentation.Slides(1).Shapes(Icount) _
        .TextFrame.TextRange = daycount & " Days to go!"
    Case Is = 1
        ActivePresentation.Slides(1).Shapes(Icount) _
        .TextFrame.TextRange = daycount & " Day to go!"
    Case Else
        ActivePresentation.Slides(1).Shapes(Icount) _
        .TextFrame.TextRange = "It's here!"
End Select
End Sub

私を助けてください!

4

2 に答える 2

0

あなたのコード:

Icount = ActivePresentation.Slides(1).Shapes.Count - 1
.....
Select Case daycount
    Case Is > 1
        ActivePresentation.Slides(1).Shapes(Icount) _

スライドに図形が 1 つしかない場合、ICount は 0 になります。ActivePresentation.Slides(1).Shapes(Icount) はエラーをスローします。

于 2013-07-16T14:10:06.083 に答える
0

日付値を区切るにはハッシュ記号が必要です

thedate = #12/25/2013#

mm/dd/yyyy の順です。

また、VBA コレクションは 1 からインデックス付けされるため、Shapes(countOfShapes) が最後の Shape になることにも注意してください。

于 2013-07-16T13:40:37.630 に答える