We completed some designs showing paths in PowerPoint. Each design was about 20 slides long, and each slide had up to 10 pictures with paths drawn as PowerPoint arrows of different lines. For some hitherto unfathomable reason, someone decided that the paths needed to have the arrows pointing the other way. I came up with a macro (which looked bulky but worked) to do that. A more useful variation, which switches around selected arrows on the active slide is given below. Comments for improvement welcome
Sub ChangeSelectedArrowDirection() 'PURPOSE: change direction of selected arrows 'Rumey Jiffrey 2018 Dim sld As Slide Dim shp As Shape For Each shp In ActiveWindow.Selection.ShapeRange Select Case shp.Type Case MsoShapeType.msoFreeform With shp.Line If .BeginArrowheadStyle = msoArrowheadNone Then If .EndArrowheadStyle > 1 Then .BeginArrowheadStyle = msoArrowheadLong .EndArrowheadStyle = msoArrowheadNone End If ElseIf .EndArrowheadStyle = msoArrowheadNone Then If .BeginArrowheadStyle > 1 Then .BeginArrowheadStyle = msoArrowheadNone .EndArrowheadStyle = msoArrowheadLong End If End If End With Case MsoShapeType.msoAutoShape With shp.Line If .BeginArrowheadStyle = msoArrowheadNone Then If .EndArrowheadStyle > 1 Then .BeginArrowheadStyle = msoArrowheadLong .EndArrowheadStyle = msoArrowheadNone End If ElseIf .EndArrowheadStyle = msoArrowheadNone Then If .BeginArrowheadStyle > 1 Then .BeginArrowheadStyle = msoArrowheadNone .EndArrowheadStyle = msoArrowheadLong End If End If End With Case MsoShapeType.msoLine With shp.Line If .BeginArrowheadStyle = msoArrowheadNone Then If .EndArrowheadStyle > 1 Then .BeginArrowheadStyle = msoArrowheadLong .EndArrowheadStyle = msoArrowheadNone End If ElseIf .EndArrowheadStyle = msoArrowheadNone Then If .BeginArrowheadStyle > 1 Then .BeginArrowheadStyle = msoArrowheadNone .EndArrowheadStyle = msoArrowheadLong End If End If End With Case Else 'Debug.Print "donothing" End Select Next shp End Sub