背景・目的
下図のように、選択中の図形(高さ1cm×幅1cm)のサイズを、マクロで表示させることを考えたい。

そのようなマクロは、単体では使いどころがないけれども、意外と応用が効く。
例えば、シート内の複数の図形やグラフのサイズを揃えたり、セルの選択範囲に合わせたサイズのテキストボックスを自動作成したりなどといったマクロのパーツとして使える。
事前検証
図形を選択した状態で、次のコードを実行する。
Sub サイズ表示1()
Dim H, W As Variant
With Selection
H = .Height '高さ
W = .Width '幅
End With
MsgBox "高さ" & H & "×幅" & W
End Sub
すると、次のメッセージボックスが表示される。

cmでは表示されず、よくわからない数値が出てきてしまう。
これは、「ポイント」という単位で表示されているので、cm(センチ)に変換する必要がある。
1cm=1÷2.54×72ポイントなので、1ポイント=1×2.54÷72cmである。
つまり、上で表示された数値×2.54÷72すれば、cmに換算できる。
方法
以上を踏まえて、以下のコードを書く。
Sub サイズ表示2()
Dim H, W As Variant
With Selection
H = .Height '高さ
W = .Width '幅
End With
H = cm変換(H)
W = cm変換(W)
MsgBox "高さ" & H & "cm×幅" & W & "cm"
End Sub
Function cm変換(ポイント As Variant) As Variant
cm変換 = WorksheetFunction.Round(ポイント * 2.54 / 72, 2)
End Function
これを実行すると、下のメッセージが表示され、うまくいったことがわかる。

四角形のサイズを適当に変えてみて実行しても、ちゃんと表示されている。

投稿時の環境
- Windows11 Home Ver. 24H2
- Excel for Microsoft 365 Ver. 2505