YouTube | Facebook | X(Twitter) | RSS

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

2016/9/1 (木)

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
  • この記事を書いた人

羽田 康祐

伊達と酔狂のGISエンジニア。GIS上級技術者、Esri認定インストラクター、CompTIA CTT+ Classroom Trainer、潜水士、PADIダイブマスター、四アマ。WordPress は 2.1 からのユーザーで歴だけは長い。 代表著書『"地図リテラシー入門―地図の正しい読み方・描き方がわかる』 GIS を使った自己紹介はこちら。ESRIジャパン(株)所属、元青山学院大学非常勤講師を兼務。日本地図学会第31期常任委員。発言は個人の見解です。

-プログラミング, ArcGIS
-,