Excelで指定されたセル値に基づいて/依存して形状サイズを自動変更するにはどうすればよいですか?
指定したセルの値に基づいて形状サイズを自動的に変更する場合は、この記事が役立ちます。
VBAコードを使用して、指定したセル値に基づいて形状サイズを自動変更します
VBAコードを使用して、指定したセル値に基づいて形状サイズを自動変更します
次のVBAコードは、現在のワークシートで指定されたセル値に基づいて特定の形状サイズを変更するのに役立ちます。 次のようにしてください。
1.サイズを変更する必要のある形状のシートタブを右クリックし、[ コードを表示 右クリックメニューから。
2。 の中に アプリケーション向け Microsoft Visual Basic ウィンドウで、次のVBAコードをコピーしてコードウィンドウに貼り付けます。
VBAコード:Excelで指定されたセル値に基づいて形状サイズを自動変更します
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Target.Row = 2 And Target.Column = 1 Then
Call SizeCircle("Oval 2", Val(Target.Value))
End If
End Sub
Sub SizeCircle(Name As String, Diameter)
Dim xCenterX As Single
Dim xCenterY As Single
Dim xCircle As Shape
Dim xDiameter As Single
On Error GoTo ExitSub
xDiameter = Diameter
If xDiameter > 10 Then xDiameter = 10
If xDiameter < 1 Then xDiameter = 1
Set xCircle = ActiveSheet.Shapes(Name)
With xCircle
xCenterX = .Left + (.Width / 2)
xCenterY = .Top + (.Height / 2)
.Width = Application.CentimetersToPoints(xDiameter)
.Height = Application.CentimetersToPoints(xDiameter)
.Left = xCenterX - (.Width / 2)
.Top = xCenterY - (.Height / 2)
End With
ExitSub:
End Sub
注意:コードでは、「オーバル2」は、サイズを変更する形状名です。 そして 行= 2, 列= 1 形状「楕円2」のサイズがA2の値で変更されることを意味します。 必要に応じて変更してください。
異なるセル値に基づいて複数の形状の自動サイズ変更を行うには、以下のVBAコードを適用してください。
VBAコード:Excelで指定されたさまざまなセルの値に基づいて複数の図形のサイズを自動変更
Private Sub Worksheet_Change(ByVal Target As Range)
Dim xAddress As String
On Error Resume Next
If Target.CountLarge = 1 Then
xAddress = Target.Address(0, 0)
If xAddress = "A1" Then
Call SizeCircle("Oval 1", Val(Target.Value))
ElseIf xAddress = "A2" Then
Call SizeCircle("Smiley Face 3", Val(Target.Value))
ElseIf xAddress = "A3" Then
Call SizeCircle("Heart 2", Val(Target.Value))
End If
End If
End Sub
Sub SizeCircle(Name As String, Diameter)
Dim xCenterX As Single
Dim xCenterY As Single
Dim xCircle As Shape
Dim xDiameter As Single
On Error GoTo ExitSub
xDiameter = Diameter
If xDiameter > 10 Then xDiameter = 10
If xDiameter < 1 Then xDiameter = 1
Set xCircle = ActiveSheet.Shapes(Name)
With xCircle
xCenterX = .Left + (.Width / 2)
xCenterY = .Top + (.Height / 2)
.Width = Application.CentimetersToPoints(xDiameter)
.Height = Application.CentimetersToPoints(xDiameter)
.Left = xCenterX - (.Width / 2)
.Top = xCenterY - (.Height / 2)
End With
ExitSub:
End Sub
注意:
3。 押す 他の + Q キーを同時に閉じて アプリケーション向け Microsoft Visual Basic 窓。
これ以降、セルA2の値を変更すると、形状楕円2のサイズが自動的に変更されます。 スクリーンショットを参照してください:
または、セルA1、A2、A3の値を変更して、対応する形状「楕円形1」、「スマイリーフェイス3」、「ハート3」のサイズを自動的に変更します。 スクリーンショットを参照してください:
注意:セル値が10を超えると、形状サイズは変更されなくなります。
現在のExcelブックのすべての図形を一覧表示してエクスポートします。
世界 グラフィックのエクスポート の有用性 Kutools for Excel 以下のスクリーンショットのように、現在のワークブック内のすべての図形をすばやく一覧表示し、それらすべてを特定のフォルダーに一度にエクスポートできます。 ダウンロードして今すぐ試してみてください! (30-日フリートレイル)
関連記事:
- Excelで特定の形状にマウスオーバーチップを追加するにはどうすればよいですか?
- Excelで図形を透明な背景色で塗りつぶす方法は?
- Excelで指定されたセル値に基づいて特定の形状を非表示または再表示するにはどうすればよいですか?
最高のオフィス生産性ツール
Kutools for Excelはほとんどの問題を解決し、生産性を80%向上させます
- 再利用: すばやく挿入 複雑な数式、チャート および以前に使用したものすべて。 セルを暗号化する パスワード付き。 メーリングリストを作成する そしてメールを送る...
- スーパーフォーミュラバー (複数行のテキストと数式を簡単に編集できます); 読書レイアウト (多数のセルを簡単に読み取って編集する); フィルター範囲に貼り付け...
- セル/行/列をマージする データを失うことなく; 分割セルコンテンツ; 重複する行/列を組み合わせる...重複セルを防止します。 範囲を比較する...
- [複製]または[一意]を選択します 行; 空白行を選択 (すべてのセルは空です); スーパーファインドとファジーファインド 多くのワークブックで; ランダム選択...
- 正確なコピー 数式参照を変更せずに複数のセル。 参照の自動作成 複数のシートに; 箇条書きを挿入、チェックボックスなど...
- テキストを抽出、テキストの追加、位置による削除、 スペースを削除する; ページング小計の作成と印刷。 セルの内容とコメントを変換する...
- スーパーフィルター (フィルタースキームを保存して他のシートに適用します); 高度な並べ替え 月/週/日、頻度など。 特殊フィルター 太字、斜体...
- ワークブックとワークシートを組み合わせる; キー列に基づいてテーブルをマージします。 データを複数のシートに分割; xls、xlsx、PDFをバッチ変換...
- 300 以上の強力な機能. Office / Excel 2007-2021 および 365 をサポートします。すべての言語をサポートします。 企業や組織に簡単に導入できます。 フル機能の 30 日間無料トライアル。 60日間の返金保証。

Officeタブは、タブ付きのインターフェイスをOfficeにもたらし、作業をはるかに簡単にします
- Word、Excel、PowerPointでタブ付きの編集と読み取りを有効にする、パブリッシャー、アクセス、Visioおよびプロジェクト。
- 新しいウィンドウではなく、同じウィンドウの新しいタブで複数のドキュメントを開いて作成します。
- 生産性を 50% 向上させ、毎日何百回もマウス クリックを減らすことができます!
















