Selection.AutomaticLink メソッド (Visio)
すべての図形とデータ行の正確な対応付けを要求せずに、自動的に選択した図形を指定したデータ レコードセットのデータ行にリンクします。 リンクされた図形の数を返します。
注:
この Visio オブジェクトまたはメンバーは Visio Professional 2013 のライセンス ユーザーのみが使用できます。
構文
式。 AutomaticLink
( _DataRecordsetID_
, _ColumnNames()_
, _AutoLinkFieldTypes()_
, _FieldNames()_
, _AutoLinkBehavior_
, _ShapeIDs()_
)
式Selection オブジェクトを返す式。
パラメーター
名前 | 必須 / オプション | データ型 | 説明 |
---|---|---|---|
DataRecordsetID | 必須 | Long | リンクするデータ行を含む DataRecordset オブジェクトの ID プロパティの値です。 |
ColumnNames() | 必須 | String | データ レコードセットの列の名前に対応する文字列型の配列です。 |
AutoLinkFieldTypes() | 必須 | Long | 図形の属性の種類を含む VisAutoLinkFieldTypes 列挙の長整数型 (Long) の値の配列です。 配列の要素に、最低 1 つは ColumnNames 配列と FieldNames 配列の同じ位置の値に対応する値が含まれている必要があります。 |
FieldNames() | 必須 | String | 図形の値を表す文字列の配列です。 |
AutoLinkBehavior | 必須 | Long | リンクが発生する方法を指定する VisAutoLinkBehavior 列挙の定数の組み合わせです。 使用可能な値については備考を参照してください。 |
ShapeIDs() | 必須 | Long | 出力パラメーターです。 このメソッドでリンクされた図形の ID を含む Long 型の配列です。 |
戻り値
Long
注釈
ColumnNames() パラメーターには、データベースの列名を含む文字列の配列を渡します。 配列の要素に、最低 1 つは AutoLinkFieldTypes() 配列と FieldNames() 配列の同じ位置の値に対応する値が含まれている必要があります。
AutoLinkFieldTypes() パラメーターには、属性の種類を含む VisAutoLinkFieldTypes 列挙の Long 型の値の配列を渡します。 図形の属性には、高さ、幅、テキスト、および、図形が派生したマスター シェイプ名があります。 配列の要素に、最低 1 つは ColumnNames() 配列と FieldNames() 配列の同じ位置の値に対応する値が含まれている必要があります。
FieldNames() パラメーターには、図形の値を表す文字列の配列を渡します。 FieldNames() 配列の要素に、最低 1 つは ColumnNames() 配列および AutoLinkFieldTypes() 配列の同じ位置の値に対応する値が含まれている必要があります。
AutoLinkFieldTypes() のほとんどの値 (たとえば visAutoLinkShapeText の場合) では、FieldNames() 値を指定する必要はありません。代わりに空の文字列を渡すことができます。 ただし、AutoLinkFieldTypes の visAutoLinkCustPropsLabel、visAutoLinkUserRowName、visAutoLinkPropRowNameU、または visAutoLinkUserRowNameU 値を渡す場合は、データ列名と比較するために、図形データ項目 (以前のバージョンの Visio でカスタム プロパティ値と呼ばれる) を完全に指定する FieldNames() の値を渡す必要があります。
オプションの AutoLinkBehavior パラメーターには、リンクが発生する方法を指定する VisAutoLinkBehaviors 列挙の値を 1 つ、または、複数渡すことができます。 以下の表に使用できる値を示します。
定数 | 値 | 説明 |
---|---|---|
visAutoLinkDontReplaceExistingLinks | 16 | 既存のリンクを置き換えません。 |
visAutoLinkGenericProgressBar | 2 | より詳細なバーの代わりに一般的な進行状況バーを表示します。 |
visAutoLinkIncludeHiddenProps | 64 | 非表示のプロパティを含めます。 |
visAutoLinkNoApplyDataGraphic | 4 | リンクされた図形に既定のデータ グラフィックを適用しません。 |
visAutoLinkNullMatchesNoFormula | 32 | データベースの Null 値の Visio シェイプシートの "No Formula" へのマップを許可します。 |
visAutoLinkReplaceExistingLinks | 8 | 既存のリンクを置き換えます。 |
visAutoLinkSelectedShapesOnly | 1 | 選択された図形のサブ図形ではなく、選択された図形のみをリンクします。 |
visAutoLinkDontReplaceExistingLinks と visAutoLinkReplaceExistingLinks の両方を含む値を渡すことはできません。 メソッドを実行しようとすると、エラーが返されます。
AutoLinkBehavior を渡した場合は、既定の動作が次のとおり変更されます。
既存のリンクを解除するかどうか判断するために、データ レコードの LinkReplaceBehavior の設定を使用します。 設定が visLinkReplacePrompt となっていた場合、visLinkReplaceAlways として扱います。
選択された図形とそのサブ図形をリンクします。
詳細な進行状況バーを一般的な進行状況バーに変更しません。
データ グラフィックを適用します。
ShapeIDs() パラメーターの場合は、 Long 型の空の無次元配列を渡します。 メソッドを使用してデータにリンクされた図形の ID が配列に保存され、返されます。
Visio にリンクを作成するのに十分な情報を提供するには、少なくとも 1 つの一連の一致するデータを指定する必要があります。データ レコードセット内の列の名前、図形属性の型、必要に応じて、図形の値はすべて、メソッドに渡す対応する配列の同じインデックス位置にあります。 図形の属性の種類は、一致したときに該当する図形の属性を示します。 属性は、図形のデータ項目、図形のテキスト、または、その他の VisAutoLinkFieldTypes 列挙に指定された値である可能性があります。
たとえば、図面に個々の従業員を表す図形の組み合わせが含まれていて、それぞれの従業員の名前が表示された図形テキストで図形を識別しているとします。 この後の例で示すとおり、メソッドには次のパラメーターを渡します。
ColumnNames() パラメーターには、"EmployeeName" という列名を配列の要素番号 0 に設定し、渡します。
AutoLinkFieldTypes() パラメーターには、visAutoLinkShapeText 列挙値を配列の要素番号 0 に設定し、渡します。
FieldNames() パラメーターには、空の文字列 ("") を配列の要素番号 0 に設定し、渡します。これは、AutoLinkFieldTypes() が visAutoLinkShapeText の場合、FieldNames() の値は指定する必要がないためです。
例
次の Microsoft Visual Basic for Applications (VBA) マクロは、AutomaticLink メソッドを使用して図面内の図形を自動的にデータ レコードセットのデータにリンクする方法を示しています。 データ レコードセット内の従業員データを、図面内の図形テキストに該当する従業員名が設定されている図形にリンクします。
このマクロを実行する前に、従業員名が保存された "EmployeeName" という列と、その他必要な列を含むデータ レコードセットを作成し、Visio 図面の該当する図形テキストに、その従業員名を割り当てます。 DataRecordsets.Add メソッドを使用して、作業中のドキュメントの DataRecordsets コレクションにデータ レコードセットを追加します。 このデータ レコードセットは、コレクションに最後に追加したものであることを確認してください。
Public Sub AutomaticLink_Example()
Dim vsoDataRecordset As Visio.DataRecordset
Dim vsoSelection As Visio.Selection
Dim astrColumnNames(1) As String
Dim alngFieldTypes(1) As Long
Dim astrFieldNames(1) As String
Dim alngShapesLinked() As Long
Dim intCount As Integer
intCount = Visio.ActiveDocument.DataRecordsets.Count
Set vsoDataRecordset = Visio.ActiveDocument.DataRecordsets(intCount )
astrColumnNames(0) = "EmployeeName"
alngFieldTypes(0) = Visio.VisAutoLinkFieldTypes.visAutoLinkShapeText
astrFieldNames(0) = ""
ActiveWindow.DeselectAll
ActiveWindow.SelectAll
Set vsoSelection = ActiveWindow.Selection
vsoSelection.AutomaticLink vsoDataRecordset.ID, _
astrColumnNames, _
alngFieldTypes, _
astrFieldNames, 0, alngShapesLinked
End Sub
サポートとフィードバック
Office VBA またはこの説明書に関するご質問やフィードバックがありますか? サポートの受け方およびフィードバックをお寄せいただく方法のガイダンスについては、Office VBA のサポートおよびフィードバックを参照してください。