내가 만든 양식 응용 프로그램이 독립형이되도록 VBA 코드를 C#으로 전송하려고하는 중입니다. (그룹에서) 모양 안에있는 도형에서 텍스트를 가져 오는 데 문제가 있습니다. 다음은 VBA에서 완벽하게 작동하는 예제입니다.Visio Shape의 텍스트를 올바르게 읽는 방법
Dim text as String
text = groupShape.shapes.item("rectangle").text
올바른 값을 반환합니다. C#에서는 microsoft.office.interop.visio.dll 참조를 사용하고 있습니다. 모양 이름을 잘 읽을 수 있었기 때문에 응용 프로그램과 문서 객체가 잘 작동한다는 것을 알았습니다. C#에서 위의 코드는 다음과 같습니다.
var text = "";
text = Doc.Shapes.ItemU("groupShape").Shapes.ItemU("rectangle").text
올바른 값을 반환하지 않습니다. 그것은 "Object"를 반환 할 것이므로 문자열은 반환하지 않는다는 것을 믿습니다.
텍스트를 반환하려면 어떻게해야합니까? 감사!
편집 : 내가 작성한 실제 코드는 다음과 같습니다. VBA를하고, C#을
VBA :
Dim tempShape As Shape
Set tempShape = ActiveDocument.Pages(pageName).Shapes.Item("MainTable")
txtJobName.value = tempShape.Shapes.Item("textJobName").Text
C#을
IVisio.Shape tempShape = Doc.Pages[Loaded_Page.Name].Shapes.ItemU["MainTable"];
Txt_JobName.Text = tempShape.Shapes.ItemU["textJobName"].Characters.Text;
ANOTHER 편집 : 나는 또한 텍스트가있는 셀을 참조하여 모양 데이터 속성에가는 시도했습니다 여전히 운이 없다.
Txt_JobName.Text = tempShape.Shapes.ItemU["textJobName"].CellsSRC[8, 0, 0].ResultStr[0];
즉, 모양에 필드가 있음을 의미합니다. 이 항목은 # 3, "Field"입니다. 'shape.Characters.Text' 사용 Visio 문서에서 어떤 필드인지 확인하십시오. – Nikolay