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 のサポートおよびフィードバックを参照してください。