![見出し画像](https://assets.st-note.com/production/uploads/images/72192110/rectangle_large_type_2_84151f51978347762e7afc9dbcca7587.jpeg?width=800)
Excelの図形の幅をセルの値で変更する方法(自作関数を使用)
シート上の数値を使って図形の位置や幅を変形させたい!
僕以外の人にそんなニーズがあるのかはわからないですが、やり方を書いてみます。
VisualBasicEditorを起動
VBAというマクロ言語を記述するために使うExcel付属のツールを使用します。
![](https://assets.st-note.com/img/1644805175933-Oe85BK22JP.png?width=800)
![](https://assets.st-note.com/img/1644805231192-KLLxTm0QPo.png?width=800)
マクロを追加
![](https://assets.st-note.com/img/1644805285432-JpijGzkm3u.png?width=800)
上記のように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」となっていました。
![](https://assets.st-note.com/img/1644805339364-3Gnn64XhfL.png?width=800)
自作関数をセルに入力
以下の関数をセルに入力します。
=setShapeWidth("正方形/長方形 1",100)
![](https://assets.st-note.com/img/1644805430077-OmWbp8sLNT.png?width=800)
すると図形の幅が変わったのに気がつかれましたでしょうか。
ここで、100の部分をセルを参照するように変更してみます。
=setShapeWidth("正方形/長方形 1",C2)
こうすると、C2の値を変更すると図形の幅が変わります。
![](https://assets.st-note.com/img/1644805478111-vGKyqlBRGI.png?width=800)
以上、Excelで図形の幅をセルの値を参照して変更する方法でした。
この記事が気に入ったらサポートをしてみませんか?