GraphicItem.SetExpression メソッド (Visio)
図形データ (カスタム プロパティ) を評価する 、GraphicItem オブジェクトのルールの一部である式文字列の値を設定します。
注:
この Visio オブジェクトまたはメンバーは Visio Professional 2013 のライセンス ユーザーのみが使用できます。
構文
expression. SetExpression
( _Field_
, _Expression_
)
式GraphicItem オブジェクトを返す式。
パラメーター
名前 | 必須 / オプション | データ型 | 説明 |
---|---|---|---|
Field | 必須 | VisGraphicField | GraphicItem に割り当てられた主データ フィールド (列) のラベルまたは式を表します。 使用可能な値については備考を参照してください。 |
Expression | 必須 | String | Field パラメーターに応じた ShapeSheet 式を表します。 |
戻り値
なし
解説
Field パラメーターは次のいずれかの値です。これは、Microsoft Visio タイプ ライブラリで宣言されている、VisGraphicField 列挙に定義されています。
定数 | 値 | 説明 |
---|---|---|
visGraphicPropertyLabel | 1 | 図形データ項目のラベルです。 |
visGraphicExpression | 2 | 図形データ項目のシェイプシートの式です。 |
SetExpression メソッドに図形データ項目ラベルを渡す場合 (つまり、Field パラメーターに visGraphicPropertyLabel を渡す場合)、ラベルを中かっこ ({}) で囲む必要があります。 たとえば "Cost" という図形データ項目の名前を渡すのであれば、{Cost} と記述します。
図形の名前の後に感嘆符 (!) を渡し、フィールドの名前を渡して、データ グラフィックが適用される図形以外の図形の図形データを参照します。 たとえば次の例で、Ellipse.34 という図形の幅を参照する場合、次のように記述します。
vsoGraphicItem.SetExpression visGraphicExpression, "Ellipse.34!Width"
グラフィック アイテムを編集する前に、式文字列の設定を含め、 Master.Open メソッドを使用して、グラフィック アイテムが属する GraphicItems コレクションを持つデータ グラフィック マスターのコピーを編集するために開く必要があります。 グラフィック項目の式を編集し、その他の必要な編集を行った後、Master.Close メソッドを使用して変更をコミットします。
例
次の Microsoft Visual Basic for Applications (VBA) のマクロは、SetExpression メソッドを使って、データ グラフィック項目に式文字列の値を設定する方法を示しています。 "Data Graphic" という名前の visTypeDataGraphic 型 (一般にデータ グラフィックと呼ばれる) の Master オブジェクトのコピーを開き、データ グラフィックの GraphicItems コレクション内の最初のグラフィック 項目の式を設定して、データ グラフィックを適用する図形の幅を表示します。
注:
既存のデータ グラフィックのマスター シェイプ名は、Visio ユーザー インターフェイスの [データ グラフィック] タスク ウィンドウのマスター シェイプの上にマウス ポインターを置いて確認できます。
次にマスターを閉じ、GetExpression メソッドを使用して、グラフィック項目に適用された直近の式を取得します。 最後に、フィールド型と式の値を、[イミディエイト] ウィンドウに表示します。
このマクロでは、"Data Graphic" という名前のデータ グラフィックが現在のドキュメントに存在することを前提としています。 現在のドキュメントの Masters コレクションにデータ グラフィック マスターを追加する方法の詳細については、「 Masters.AddEx」を参照してください。
Public Sub SetExpression_Example()
Dim vsoMaster As Visio.Master
Dim vsoMasterCopy As Visio.Master
Dim vsoGraphicItem As Visio.GraphicItem
Dim strExpression As String
Dim fieldType As VisGraphicField
Set vsoMaster = Visio.ActiveDocument.Masters("Data Graphic")
Set vsoMasterCopy = vsoMaster.Open
Set vsoGraphicItem = vsoMasterCopy.GraphicItems(1)
vsoGraphicItem.SetExpression visGraphicExpression, "Width"
vsoMasterCopy.Close
vsoMaster.GraphicItems(1).GetExpression fieldType, strExpression
Debug.Print "Field type is "; fieldType
Debug.Print "Expression is "; strExpression
End Sub
サポートとフィードバック
Office VBA またはこの説明書に関するご質問やフィードバックがありますか? サポートの受け方およびフィードバックをお寄せいただく方法のガイダンスについては、Office VBA のサポートおよびフィードバックを参照してください。