InvisibleApp.Undo メソッド (Visio)
最後に行った "元に戻す" 単位を取り消します ("元に戻す" 単位が有効である場合)。
構文
式。取り消し
式InvisibleApp オブジェクトを表す変数。
戻り値
なし
解説
Undo メソッドを使用すると、1 回につき 1 つの "元に戻す" 単位を使用して、アクションを元に戻すことができます。
コードが Undo メソッドを呼び出すことができる回数は、開いている "元に戻す" 単位の範囲内で、コードが実行しているかどうかによって異なります。 次の場合、コードは、開いている "元に戻す" 単位の範囲内で実行しています。
コードが、Visio ユーザー インターフェイスによって起動されるマクロまたはアドオンである。
コードが、VisioIsIdle イベント以外の Visio イベントに応答するイベント ハンドラー内にある。
コードが、ユーザーが作成した元に戻す範囲内にある。
開いている "元に戻す" 単位の範囲内でコードを実行していない場合、現在 Visio の元に戻すスタック上にある "元に戻す" 単位ごとに、Undo メソッドを呼び出すことができます。 [Visio のオプション] ダイアログ ボックスの [詳細設定] タブで、元に戻すスタックの単位の最大数を設定できます ([ファイル] タブをクリックし、[オプション] をクリックします)。 Undo メソッドの呼び出し回数が、スタック上にある "元に戻す" 単位の数を超えた場合、アクションは何も実行されず、Undo メソッドでは例外が発生します。
コードが、開いている "元に戻す" 単位の範囲内で実行している場合、開いている "元に戻す" 単位内にある操作ごとに、Undo メソッドを呼び出すことができます。 Undo メソッドの追加の呼び出しがある場合、例外が発生し、アクションは実行されません。 たとえば、マクロのコードが 2 つの操作を実行する場合、Undo メソッドを 2 回呼び出すことができます。 マクロが Undo メソッドを 3 回目に呼び出すと、Undo メソッドでは例外が発生します。
"元に戻す" 単位の範囲内から Undo メソッドを呼び出すコードは、Redo メソッドを呼び出してアクションをやり直すことはできません。 Redo メソッドは、"元に戻す" 単位が開いていない場合にのみ呼び出すことができます。
Visio のインスタンスが、元に戻す操作およびやり直し操作を実行中の場合にも、Undo メソッドでは例外が発生します。 Visio インスタンスが元に戻されているかやり直しているかを判断するには、 IsUndoingOrRedoing プロパティを 使用します。
VisioIsIdle イベントは IsUndoingOrRedoing プロパティが False の場合にのみ発生するため、VisioIsIdle イベント ハンドラーから Undo メソッドを呼び出すことができます。 Visio インスタンスによって呼び出されないコード (Visual Basic エディターや外部プログラムから呼び出されたコードなど) から Undo メソッドを呼び出すこともできます。
ほとんどのアクションを元に戻すことができますが、一部のアクションは元に戻せません。 Undo メソッドの効果を元に戻す場合は、Redo メソッドを使用します。
例
次の VBA (Microsoft Visual Basic for Applications) マクロは、操作を元に戻したりやり直したりする方法を示します。
Public Sub Undo_Example()
Dim vsoShape As Visio.Shape
'Draw a rectangle, use Undo to delete it, and
'then use Redo to redraw it.
Set vsoShape = ActivePage.DrawRectangle(1, 5, 5, 1)
'Delete the shape.
Visio.Application.Undo
'Bring it back.
Visio.Application.Redo
End Sub
サポートとフィードバック
Office VBA またはこの説明書に関するご質問やフィードバックがありますか? サポートの受け方およびフィードバックをお寄せいただく方法のガイダンスについては、Office VBA のサポートおよびフィードバックを参照してください。