You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用C#/VB/VB.NET通过Visio Interop自动化更改跨职能流程图方向

更改Visio 2019跨职能流程图方向的自动化实现(C#/VB/VB.NET)

核心实现逻辑

跨职能流程图的方向可通过Visio Interop的FlowChart.SetDirection方法直接设置,对应手动操作的"方向"选项,无需模拟点击菜单/功能区。

C# 实现代码

using Microsoft.Office.Interop.Visio;

class VisioFlowChartDirectionHandler
{
    static void Main()
    {
        // 初始化Visio应用实例
        Application visioApp = new Application();
        visioApp.Visible = true; // 设为true可可视化操作过程

        // 打开目标跨职能流程图文档
        Document targetDoc = visioApp.Documents.Open(@"C:\YourFlowChartFile.vsdx");
        Page targetPage = targetDoc.Pages[1]; // 获取文档第一页(根据实际页面调整索引)

        // 设置方向为「从左到右」
        FlowChart.SetDirection(targetPage, VisFlowChartDirection.visFlowChartDirectionLeftToRight);

        // 若需设置「从右到左」,替换为以下代码:
        // FlowChart.SetDirection(targetPage, VisFlowChartDirection.visFlowChartDirectionRightToLeft);

        // 保存更改
        targetDoc.Save();

        // 可选:释放COM资源并关闭Visio
        // targetDoc.Close();
        // visioApp.Quit();
        // System.Runtime.InteropServices.Marshal.ReleaseComObject(targetPage);
        // System.Runtime.InteropServices.Marshal.ReleaseComObject(targetDoc);
        // System.Runtime.InteropServices.Marshal.ReleaseComObject(visioApp);
    }
}

VB.NET 实现代码

Imports Microsoft.Office.Interop.Visio

Module VisioFlowChartDirectionModule
    Sub Main()
        ' 初始化Visio应用实例
        Dim visioApp As New Application()
        visioApp.Visible = True ' 设为True可可视化操作过程

        ' 打开目标跨职能流程图文档
        Dim targetDoc As Document = visioApp.Documents.Open("C:\YourFlowChartFile.vsdx")
        Dim targetPage As Page = targetDoc.Pages(1) ' 获取文档第一页(根据实际页面调整索引)

        ' 设置方向为「从左到右」
        FlowChart.SetDirection(targetPage, VisFlowChartDirection.visFlowChartDirectionLeftToRight)

        ' 若需设置「从右到左」,替换为以下代码:
        ' FlowChart.SetDirection(targetPage, VisFlowChartDirection.visFlowChartDirectionRightToLeft)

        ' 保存更改
        targetDoc.Save()

        ' 可选:释放COM资源并关闭Visio
        ' targetDoc.Close()
        ' visioApp.Quit()
        ' System.Runtime.InteropServices.Marshal.ReleaseComObject(targetPage)
        ' System.Runtime.InteropServices.Marshal.ReleaseComObject(targetDoc)
        ' System.Runtime.InteropServices.Marshal.ReleaseComObject(visioApp)
    End Sub
End Module

注意事项

  • 需在项目中添加Microsoft.Office.Interop.Visio引用:可通过NuGet安装Microsoft.Office.Interop.Visio包,或直接添加COM组件中的「Microsoft Visio xx.x Object Library」(xx.x对应Visio 2019版本)
  • 若创建新的跨职能流程图,可将打开文档的代码替换为:
    // C# 创建新跨职能流程图
    Document newDoc = visioApp.Documents.Add("Cross Functional Flowchart.vst");
    
    ' VB.NET 创建新跨职能流程图
    Dim newDoc As Document = visioApp.Documents.Add("Cross Functional Flowchart.vst")
    
  • 确保Visio文档未被锁定或只读,否则保存操作会失败

内容的提问来源于stack exchange,提问作者user1242840

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 17:36:24