The below code changes the width and height of any object in Powerpoint to exactly 5 inches without changing the aspect ratio. The aspect ratio is the ratio of height and width. Keeping the same aspect ratio prevents an image from looking stretched. But before you run this code/macro, you first need to select the object for which you want to change width else it will alert you to select the object.
In VBA, height and width properties are specified in points as units. (So if shp.Height = 1 means height is set as 1 point.)
One inch is equal to 72 points. So if you want to change the width to 5 inches, you would set the width property to 360 = 5 * 72. To keep the aspect ratio the same, we would multiple height by the same height-to-width ratios.
Public Sub changeObjectSizeInch()
On Error GoTo Err_Handler
Dim shp As Shape
Dim lWidth As Long, lHeight As Long
If ActiveWindow.Selection.Type = ppSelectionNone Then
MsgBox "Please select embedded OLE object", vbExclamation, "Make Selection"
Else
Set shp = ActiveWindow.Selection.ShapeRange(1)
lHeight = shp.Height
lWidth = shp.Width
shp.Height = 5 * 72 * lHeight / lWidth
shp.Width = 5 * 72
End If
Exit_Label:
On Error Resume Next
Set shp = Nothing
Exit Sub
Err_Handler:
MsgBox Err.Description, vbCritical
Resume Exit_Label
End Sub
To change the # of inches, replace the “5” in both lines to the # of inches you want.
shp.Height = [# of inches] * 72 * lHeight / lWidth
shp.Width = [# of inches] * 72
To set the height to 5 inches and adjust width to the same aspect ratio, replace the code above with this.
shp.Height = 5 * 72
shp.Width = 5 * 72 * lWidth / lHeight