首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Visio 2013 -让C#作为宏工作?

Visio 2013 -让C#作为宏工作?
EN

Stack Overflow用户
提问于 2014-01-20 15:35:13
回答 1查看 841关注 0票数 2

我试图使用Visio2013SDK (Visio 2013 SDK)按顺序打开Visio2013文档并依次遍历流程图对象,之后将实现自定义代码,以便将流程图对象的值写入文本文件。目标是能够使用C#来完成所有这些工作,而不是在Visio中内置VBA宏。这是可能的吗?如果有,是否有任何可用的入口点代码示例?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-01-20 18:33:21

在VBA中所能做的,也可以在C#中完成(当然,采用语法)。这意味着,VBA和C#同样可以访问Visio对象模型。至于代码示例,您所说的“按顺序迭代”是什么意思还不太清楚。例如,如果图表上的形状形成一个循环,您会做什么?它没有起点,也没有终点。还是一棵树?

尽管如此,您可以很容易地分别枚举所有形状和所有连接:

代码语言:javascript
复制
using System;
using Visio = Microsoft.Office.Interop.Visio;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            var app = new Visio.Application();
            var doc = app.Documents.Open(args[0]);

            var page = doc.Pages[1];

            foreach (Visio.Shape shp in page.Shapes)
                Console.WriteLine("shape #{0}: text: '{1}'", shp.ID, shp.Text);

            foreach (Visio.Connect conn in page.Connects)
                Console.WriteLine("connector: #{0} -> #{1}", conn.FromSheet.ID, conn.ToSheet.ID);

            app.Quit();
        }
    }
}

看看这些线程:

读取visio与流程图中其他形状的连接的C#代码

使用C#遍历Visio流程图中的所有可能路径

注意,要简单地将值从形状写入文本文件,可以在“查看”选项卡上使用“形状报告”按钮。请参阅Visio中有关“形状报告”的更多信息:

http://www.youtube.com/watch?v=Lm1ZrkPpI1U

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21237970

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档