Article ID: 162101
Article Last Modified on 10/11/2006
Sub CreateOrgChart()
' Define the varables used for the boxes.
Dim Main As Shape
Dim MBox As Shape
Dim LBox as Shape
Dim RBox as Shape
' Change these values to make different size boxes.
Const BoxWidth As Integer = 200
Const BoxHeight As Integer = 75
' Change this value to change the space between boxes.
Const space As Integer = 40
' Declare variables to hold slide height and width info.
Dim h As Integer
Dim w As Integer
Dim TopBox As Integer
Dim left As Integer
Dim Level2 As Integer
' Holds an object reference to a slide.
Dim TheSlide As Slide
' Create a new slide.
Set TheSlide = ActivePresentation.Slides.Add(1, ppLayoutTitleOnly)
' Switch the presentation to slide view.
With ActiveWindow
If .ViewType <> ppViewSlide Then .ViewType = ppViewSlide
End With
' Get the height and width of the slide.
With ActiveWindow.Presentation.PageSetup
h = .SlideHeight
w = .SlideWidth
End With
' Make sure height and width are valid.
If h = 0 Or w = 0 Then
' The Height and Width are invalid
MsgBox "Something is wrong!" _
& " Try restarting your computer.", vbCritical
End
End If
' Set up parameters for the add shape method.
left = ((w / 2) - (BoxWidth / 2))
TopBox = ((h / 2) - (BoxHeight))
Level2 = (TopBox + BoxHeight + space)
' Add the Organization Chart Boxes.
With ActiveWindow.Selection.SlideRange.Shapes
Set Main = .AddShape(msoShapeRectangle, _
left, _
TopBox, _
BoxWidth, _
BoxHeight)
Set MBox = .AddShape(msoShapeRectangle, _
left, _
Level2, _
BoxWidth, _
BoxHeight)
Set LBox = .AddShape(msoShapeRectangle, _
(left - space - BoxWidth), _
Level2, _
BoxWidth, _
BoxHeight)
Set RBox = .AddShape(msoShapeRectangle, _
(left + space + BoxWidth), _
Level2, _
BoxWidth, _
BoxHeight)
End With
' Use a connector to conncect the first box and third box.
With ActiveWindow.Selection.SlideRange.Shapes.AddConnector _
(msoConnectorElbow, 0, 0, 100, 100).ConnectorFormat
.BeginConnect ConnectedShape:=LBox, ConnectionSite:=1
.EndConnect ConnectedShape:=RBox, ConnectionSite:=1
End With
' Use a connector to connect the top box to the middle box.
With ActiveWindow.Selection.SlideRange.Shapes.AddConnector _
(msoConnectorElbow, 0, 0, 100, 100).ConnectorFormat
.BeginConnect ConnectedShape:=Main, ConnectionSite:=3
.EndConnect ConnectedShape:=MBox, ConnectionSite:=1
End With
End Sub
176476 OFF: Office Assistant Not Answering Visual Basic Questions
163435 VBA: Programming Resources for Visual Basic for Applications
Additional query words: 97 8.00 kbmacro kborg kbpptvba ppt8 vba vbe macppt mac_ppt ppt98 98 powerpt
Keywords: kbcode kbdtacode kbhowto kbmacro kbprogramming KB162101