見出し画像

Excelの図形の幅をセルの値で変更する方法(自作関数を使用)

シート上の数値を使って図形の位置や幅を変形させたい!
僕以外の人にそんなニーズがあるのかはわからないですが、やり方を書いてみます。

VisualBasicEditorを起動

VBAというマクロ言語を記述するために使うExcel付属のツールを使用します。

VisualBasicEditorの起動画面
VisualBasicEditor

マクロを追加

標準モジュールの追加

上記のようにVisualBasicEditorで標準モジュールを追加し、以下のコードを記述します。

Function setShapeWidth(sName As String, sWidth As Double) As Boolean
     
    On Error GoTo lFalse
    
    Set shp = ActiveSheet.Shapes(sName)
    shp.Width = sWidth
    
    setShapeWidth = True
    
    Exit Function
    
lFalse:
    
    setShapeWidth = False
    
End Function

図形を追加

挿入で「正方形/長方形」の図形を追加します。
追加したら、図形の名称を確認します。ここでは「正方形/長方形 1」となっていました。

図形の追加

自作関数をセルに入力

以下の関数をセルに入力します。

=setShapeWidth("正方形/長方形 1",100)
自作関数の入力後

すると図形の幅が変わったのに気がつかれましたでしょうか。
ここで、100の部分をセルを参照するように変更してみます。

=setShapeWidth("正方形/長方形 1",C2)

こうすると、C2の値を変更すると図形の幅が変わります。

図形の幅をセルの値を参照して取得するように変更

以上、Excelで図形の幅をセルの値を参照して変更する方法でした。

この記事が気に入ったらサポートをしてみませんか?