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 メソッドに図形データ項目ラベルを渡すとき (つまり、フィールド パラメーターに 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 型 (一般にデータ グラフィックと呼ばれる) のマスター オブジェクトのコピーを開き、データ グラフィックの GraphicItems コレクションの最初のグラフィック アイテムの式を設定して、データ グラフィックが適用される図形の幅を表示します。

注:

既存のデータ グラフィックのマスター シェイプ名は、Visio ユーザー インターフェイスの [データ グラフィック] タスク ウィンドウのマスター シェイプの上にマウス ポインターを置いて確認できます。

次にマスターを閉じ、GetExpression メソッドを使用して、グラフィック項目に適用された直近の式を取得します。 最後に、フィールド型と式の値を、[イミディエイト] ウィンドウに表示します。

このマクロでは、"Data Graphic" という名前のデータ グラフィックスが現在の文書に存在することを前提としています。 現在のドキュメントの マスター コレクションにデータ グラフィック マスターを追加する方法の詳細については、 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 のサポートおよびフィードバックを参照してください。