Sub prcResizeAllImagesToSpecificCm()
' インプットボックスからの入力に基づいてシート内の全ての画像を特定のサイズ(cm)に変更する
Dim shp As Shape
Dim dblCm As Double
Dim dblPoints As Double
Dim strInput As String
' インプットボックスでサイズ(cm)を入力させる
strInput = InputBox("画像のサイズをセンチメートル単位で入力してください(例:3.5)", "画像サイズ変更")
' 数値チェックと変換
If IsNumeric(strInput) Then
dblCm = CDbl(strInput)
dblPoints = dblCm * 28.35 ' cmをポイントに変換
Else
MsgBox "数値を入力してください。", vbExclamation
Exit Sub
End If
' シート内の全ての図形に対してループ
For Each shp In ActiveSheet.Shapes
' 図形が画像である場合のみサイズを変更
If shp.Type = msoPicture Or shp.Type = msoLinkedPicture Or shp.Type = msoEmbeddedOLEObject Then
With shp
.LockAspectRatio = msoTrue
.Width = dblPoints ' 幅を設定
' 高さはアスペクト比を維持して自動調整される
End With
End If
Next shp
End Sub
コメント