指定した回数だけ ExtentStack を戻す

Sub GetBackExtentStackNET()
        Dim pMxDocument As IMxDocument = My.ArcMap.Document
        Dim pActiveView As IActiveView = pMxDocument.ActiveView
        Dim pExtentStack As IExtentStack = pActiveView.ExtentStack

        MsgBox("スタックされているエクステントの数:" & pExtentStack.Count.ToString())

        Dim num As Long
        num = Long.Parse(InputBox("スタックを戻す回数を入力", "", "10"))    'スタックを戻す回数

        Dim i As Long
        For i = 1 To pExtentStack.Count - num

            If Not pExtentStack.CanUndo = False Then
                pExtentStack.Undo()
            End If

        Next i

        pActiveView.Extent = pActiveView.Extent '現在の範囲をセットしてRedoをさせない対処
        pActiveView.Refresh()

End Sub

Sub GetBackExtentStack()
    
    Dim num As Long
    num = 10    'スタックを戻す回数

    Dim pMxDocument As IMxDocument
    Set pMxDocument = ThisDocument
    
    Dim pActiveView As IActiveView
    Set pActiveView = pMxDocument.ActiveView
    
    Dim pExtentStack As IExtentStack
    Set pExtentStack = pActiveView.ExtentStack
    
    Debug.Print pExtentStack.Count
    
    Dim i As Long
    For i = 1 To pExtentStack.Count - num
    
        If Not pExtentStack.CanUndo = False Then
            pExtentStack.Undo
        End If
    
    Next i
    
    pActiveView.Extent = pActiveView.Extent '現在の範囲をセットしてRedoをさせない対処
    pActiveView.Refresh

End Sub