0

何百もの図形を含む図面があり、それらすべてに同じデータ セットが適用されています。この場合、行 "Prop.Row_5" の値をすべての形状で 0001 に変更したいとします。

現在私は持っています:

Sub Macro1()
    Dim vsoPage As Visio.Page, vsoShape As Visio.Shape
    Dim vsoStrng As String

    For Each vsoPage In ThisDocument.Pages
        For Each vsoShape In vsoPage.Shapes
            vsoShape.CellsSRC(visSectionProp, 4, visCustPropsValue).FormulaU = "0001"

        Next
    Next

End Sub

これは私が試したいくつかの方法の 1 つで、何もうまくいかないようです。誰かが私のためにこれを片付けることができますか?

4

1 に答える 1

1

プロパティが数値の場合、コードが機能するはずです。または、コンマなしで配置できます。

Dim vsoPage As Page
Dim vsoShape As Shape

For Each vsoPage In ThisDocument.Pages
    For Each vsoShape In vsoPage.Shapes
        vsoShape.CellsSRC(visSectionProp, intRowNum, _
            visCustPropsValue).FormulaU = 1
    Next
Next

ただし、プロパティが文字列の場合は、次のように 3 つのコンマを使用する必要があります。

        vsoShape.CellsSRC(visSectionProp, intRowNum, _ 
            visCustPropsValue).FormulaU = """0001"""

これは、式自体が文字列であり、内部に "" 文字が含まれている場合にのみ文字列として評価されるためです。それ以外の場合は、入力した文字列と同じ名前の変数、関数、またはセルが検索されます。

これがお役に立てば幸いです。

よろしく、

于 2013-07-04T10:19:16.430 に答える