背景・目的

下図で選択中の図形(高さ1 cm×幅1 cm)のサイズを、マクロで表示させることを考えます。

【Excel VBA マクロ】選択中の図形のサイズを表示する

そのようなマクロは、単体では使いどころがないですが、意外と応用が効きます。

たとえば、

  • シート内の複数の図形やグラフのサイズを揃える
  • セルの選択範囲に合わせたサイズのテキストボックスを自動作成する

などといったマクロのパーツとして使えます。

事前検証

図形を選択した状態で、次のコードを実行します。

Sub サイズ表示1()
    
    Dim H, W As Variant
    
    With Selection
        H = .Height     '高さ
        W = .Width     '幅
    End With
    
    MsgBox "高さ" & H & "×幅" & W

End Sub

すると、次のメッセージボックスが表示されます。

【Excel VBA マクロ】選択中の図形のサイズを表示する

cmでは表示されず、よくわからない数値が出てきてしまいます。

これは、「ポイント」という単位で表示されているので、cm(センチ)に変換する必要があるのです。

1 cm=1÷2.54×72ポイントなので、1ポイント=1×2.54÷72 cmです。

つまり、上で表示された数値×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

これを実行すると、下のメッセージが表示され、うまくいったことがわかります。

【Excel VBA マクロ】選択中の図形のサイズを表示する

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

【Excel VBA マクロ】選択中の図形のサイズを表示する

投稿時の環境

  • Windows11 Home Ver. 24H2
  • Excel for Microsoft 365 Ver. 2505