Here's how to do Tables and Groups. You will have to search a little on Google to do Diagrams etc in a similar way. It's untested from the top of my head so you may need to check it.
Sub NoName() 'Edit: added this line for code tags
Dim osld As Slide
Dim oshp As Shape
Dim L As Long
On Error Resume Next
For Each osld In ActivePresentation.Slides
For Each oshp In osld.Shapes
'Table?
If oshp.HasTable Then
Call r2LTable(oshp.Table)
End If
If oshp.Type = msoGroup Then
Call r2LGroup(oshp)
End If
'shapes,placehoders,textboxes etc
If oshp.HasTextFrame Then
With oshp.TextFrame.TextRange
.Font.Name = "Arial"
.Font.NameComplexScript = "Arial"
.ParagraphFormat.TextDirection = ppDirectionRightToLeft
.RtlRun
End With
If oshp.TextFrame.TextRange.ParagraphFormat.Alignment = ppAlignLeft Then
oshp.TextFrame.TextRange.ParagraphFormat.Alignment = ppAlignRight
End If
End If
Next oshp
'notes pages
For Each oshp In osld.NotesPage.Shapes
If oshp.HasTextFrame Then
With oshp.TextFrame.TextRange
.Font.Name = "Arial"
.Font.NameComplexScript = "Arial"
.ParagraphFormat.TextDirection = ppDirectionRightToLeft
.RtlRun
If .ParagraphFormat.Alignment = ppAlignLeft Then
.ParagraphFormat.Alignment = ppAlignRight
End If
End With
End If
Next oshp
Next osld
End Sub
Sub r2LTable(otbl As Table)
Dim iRow As Integer
Dim iCol As Integer
For iRow = 1 To otbl.Rows.Count
For iCol = 1 To otbl.Columns.Count
With otbl.Cell(iRow, iCol).Shape.TextFrame.TextRange
.Font.Name = "Arial"
.Font.NameComplexScript = "Arial"
.ParagraphFormat.TextDirection = ppDirectionRightToLeft
.RtlRun
If .ParagraphFormat.Alignment = ppAlignLeft Then
.ParagraphFormat.Alignment = ppAlignRight
End If
End With
Next iCol
Next iRow
End Sub
Sub r2LGroup(ogrp As Shape)
Dim iCount As Integer
For iCount = 1 To ogrp.GroupItems.Count
If ogrp.GroupItems(iCount).HasTextFrame Then
With ogrp.GroupItems(iCount).TextFrame.TextRange
.Font.Name = "Arial"
.Font.NameComplexScript = "Arial"
.ParagraphFormat.TextDirection = ppDirectionRightToLeft
.RtlRun
If .ParagraphFormat.Alignment = ppAlignLeft Then
.ParagraphFormat.Alignment = ppAlignRight
End If
End With
End If
Next iCount
End Sub