DataRecordset.RemoveRefreshConflict メソッド (Visio)
現在の図面から、データにリンクされた図形の競合に関する情報をクリアします。
注:
この Visio オブジェクトまたはメンバーは Visio Professional 2013 のライセンス ユーザーのみが使用できます。
構文
式。RemoveRefreshConflict (ShapeInConflict)
式DataRecordset オブジェクトを返す式。
パラメーター
名前 | 必須 / オプション | データ型 | 説明 |
---|---|---|---|
ShapeInConflict | 必須 | [IVSHAPE] | データ レコードセットの更新後に競合するデータにリンクされた図形。 |
戻り値
なし
解説
ShapeInConflict に実際に競合がない場合、メソッドは無効になります。
競合に関する情報を削除しないことを選択すると、情報は現在の図面で無期限に永続化されます。
例
次の Microsoft Visual Basic for Applications (VBA) マクロは、RemoveRefreshConflict メソッドを使用して、競合を削除する方法を示します。 このマクロは、GetAllRefreshConflicts メソッドを呼び出して、データ レコードセットのリフレッシュ後に競合が存在する図形を特定します。 次に 、GetMatchingRowsForRefreshConflict メソッドを 呼び出して、競合の原因となっているデータ レコードセットの行を特定します。
最後に追加されたデータ レコードセットを更新し、競合がなかった場合は [イミディエイト] ウィンドウに "No conflicts" と出力します。 競合が見つかると、競合している各図形が GetMatchingRowsForRefreshConflict メソッドに渡され、結果の行 ID が同じウィンドウに出力されます。 次に、競合している図形を RemoveRefreshConflict メソッドに渡して、競合を削除します。
このマクロを実行する前に、最後に追加されたデータ レコードセットが、接続された (非 XML ベースの) データ レコードセットであり、元のデータ ソースに接続されていることを確認してください。 次に、データ ソースの行を削除するか、またはデータ レコードセットをリフレッシュすると競合が発生するような変更を行ってください。
Public Sub RemoveRefreshConflicts_Example()
Dim vsoDataRecordset As Visio.DataRecordset
Dim intRecordsetCount As Integer
Dim intShapeCount As Integer
Dim vsoShapes() As Visio.Shape
Dim intRowCount As Integer
Dim vsoShapeInConflict As Visio.Shape
Dim alngRowIDs() As Long
Dim lngvsoRowID As Long
intRecordsetCount = Visio.ActiveDocument.DataRecordsets.Count
Set vsoDataRecordset = Visio.ActiveDocument.DataRecordsets(intRecordsetCount)
vsoDataRecordset.Refresh
vsoShapes = vsoDataRecordset.GetAllRefreshConflicts
If IsEmpty(vsoShapes) Then
Debug.Print "No conflict"
Else
For intShapeCount = LBound(vsoShapes) To UBound(vsoShapes)
Set vsoShapeInConflict = vsoShapes(intShapeCount)
alngRowIDs = vsoDataRecordset.GetMatchingRowsForRefreshConflict(vsoShapeInConflict)
If IsEmpty(alngRowIDs) Then
Debug.Print "For shape:", vsoShapeInConflict.Name, "Row deleted."
Else
For intRowCount = LBound(alngRowIDs) To UBound(alngRowIDs)
lngvsoRowID = alngRowIDs(intRowCount)
Debug.Print "For shape:", vsoShapeInConflict.Name, "Row ID of row in conflict:", lngvsoRowID
Next intRowCount
End If
Call vsoDataRecordset.RemoveRefreshConflict (vsoShapeInConflict)
Next intShapeCount
End If
End Sub
サポートとフィードバック
Office VBA またはこの説明書に関するご質問やフィードバックがありますか? サポートの受け方およびフィードバックをお寄せいただく方法のガイダンスについては、Office VBA のサポートおよびフィードバックを参照してください。