以下是使用 VBA 生成树状组织架构图的代码,根据你提供的 Excel 数据,老板为第一级在最上面,部门长为第二级在下面,普通员工为第三级在最下面:

Sub GenerateOrganizationChart()
    Dim pptApp As Object
    Dim pptPres As Object
    Dim pptSlide As Object
    Dim oshp As Object
    Dim orgChart As Object
    Dim wb As Workbook
    Dim ws As Worksheet
    Dim rng As Range
    Dim i As Integer
    Dim rootNode As Object
    Dim managerNode As Object
    Dim employeeNode As Object
    
    ' 创建 PowerPoint 应用程序对象
    Set pptApp = CreateObject("PowerPoint.Application")
    pptApp.Visible = True ' 可见性设置为 True
    
    ' 创建一个新的演示文稿
    Set pptPres = pptApp.Presentations.Add
    
    ' 创建一个新的幻灯片
    Set pptSlide = pptPres.Slides.Add(1, 2) ' 在这里使用幻灯片类型为 2,表示组织架构图
    
    ' 在幻灯片上创建组织架构图
    Set oshp = pptSlide.Shapes.AddSmartArt(3, Left:=100, Top:=100, Width:=500, Height:=300)
    Set orgChart = oshp.SmartArt
    
    ' 设置组织架构图的样式为树型
    orgChart.Layout = 2 ' 2 表示树型样式
    
    ' 打开 Excel 文件
    Set wb = Workbooks.Open("路径\文件名.xlsx") ' 将 '路径\文件名.xlsx' 修改为你的 Excel 文件路径和名称
    Set ws = wb.Sheets("Sheet1") ' 将 'Sheet1' 修改为包含组织架构数据的工作表名称
    Set rng = ws.Range("A2:B6") ' 将 'A2:B6' 修改为包含组织架构数据的范围
    
    ' 读取 Excel 数据并创建组织架构图节点
    For i = 1 To rng.Rows.Count
        If rng.Cells(i, 2).Value = "老板" Then
            ' 添加老板节点
            Set rootNode = orgChart.Nodes.Add
            rootNode.TextFrame2.TextRange.Text = rng.Cells(i, 1).Value
        ElseIf rng.Cells(i, 2).Value = "部门长" Then
            ' 添加部门长节点
            Set managerNode = rootNode.Nodes.Add
            managerNode.TextFrame2.TextRange.Text = rng.Cells(i, 1).Value
        ElseIf rng.Cells(i, 2).Value = "员工" Then
            ' 添加普通员工节点
            Set employeeNode = managerNode.Nodes.Add
            employeeNode.TextFrame2.TextRange.Text = rng.Cells(i, 1).Value
        End If
    Next i
    
    ' 保存演示文稿
    pptPres.SaveAs "路径\文件名.pptx" ' 将 '路径\文件名.pptx' 修改为你想要保存的 PowerPoint 文件的路径和名称
    
    ' 关闭 PowerPoint 应用程序对象
    pptApp.Quit
    
    ' 关闭并保存 Excel 文件
    wb.Close SaveChanges:=True
    
    ' 释放对象变量
    Set pptSlide = Nothing
    Set pptPres = Nothing
    Set pptApp = Nothing
    Set rng = Nothing
    Set ws = Nothing
    Set wb = Nothing
End Sub

请注意将代码中的'路径\文件名.xlsx'修改为包含组织架构数据的 Excel 文件的路径和名称,并将'Sheet1'修改为包含数据的工作表名称。此外,你可以根据需要调整代码中的范围和单元格位置。

Excel 数据生成树状组织架构图 - VBA 代码

原文地址: https://www.cveoy.top/t/topic/yvi 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录