メインコンテンツへスキップ
 

Excelで指定されたセル値に基づいて/依存して形状サイズを自動変更するにはどうすればよいですか?

作者: シルヴィア 最終更新日:2020年07月22日

指定したセルの値に基づいて形状サイズを自動的に変更する場合は、この記事が役立ちます。

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

Note:コードでは、「オーバル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

注意:

1)コードでは、「オーバル1"、"スマイリーフェイス3"と"ハート3」は、サイズを自動的に変更するシェイプの名前です。 そして A1, A2A3 形状のサイズを自動変更する値のセルです。
2)形状を追加したい場合は、線を追加してください "ElseIf xAddress = "A3" Then"と "Call SizeCircle(" Heart 2 "、Val(Target.Value))「最初の上」終了する場合「コードの行。必要に応じてセルアドレスと形状名を変更します。

3。 押す 他の + Q キーを同時に閉じて アプリケーション向け Microsoft Visual Basic 窓。

これ以降、セルA2の値を変更すると、形状楕円2のサイズが自動的に変更されます。 スクリーンショットを参照してください:

または、セルA1、A2、A3の値を変更して、対応する形状「楕円形1」、「スマイリーフェイス3」、「ハート3」のサイズを自動的に変更します。 スクリーンショットを参照してください:

Note:セル値が10を超えると、形状サイズは変更されなくなります。


現在のExcelブックのすべての図形を一覧表示してエクスポートします。

この グラフィックのエクスポート の有用性 Kutools for Excel 以下のスクリーンショットのように、現在のワークブック内のすべての図形をすばやく一覧表示し、それらすべてを特定のフォルダーに一度にエクスポートできます。 ダウンロードして今すぐ試してみてください! (30 日間の無料トレイル)


関連記事:

最高のオフィス生産性向上ツール

🤖 Kutools AI アシスタント: 以下に基づいてデータ分析に革命をもたらします。 インテリジェントな実行   |  コードを生成  |  カスタム数式の作成  |  データを分析してグラフを生成する  |  Kutools関数を呼び出す...
人気の機能: 重複を検索、強調表示、または識別する   |  空白行を削除する   |  データを失わずに列またはセルを結合する   |   数式なしのラウンド ...
スーパールックアップ: 複数の基準の VLookup    複数の値の VLookup  |   複数のシートにわたる VLookup   |   ファジールックアップ ....
詳細ドロップダウン リスト: ドロップダウンリストを素早く作成する   |  依存関係のドロップダウン リスト   |  複数選択のドロップダウンリスト ....
列マネージャー: 特定の数の列を追加する  |  列の移動  |  Toggle 非表示列の表示ステータス  |  範囲と列の比較 ...
注目の機能: グリッドフォーカス   |  デザインビュー   |   ビッグフォーミュラバー    ワークブックとシートマネージャー   |  リソースライブラリ (自動テキスト)   |  日付ピッカー   |  ワークシートを組み合わせる   |  セルの暗号化/復号化    リストごとにメールを送信する   |  スーパーフィルター   |   特殊フィルター (太字/斜体/取り消し線をフィルター...) ...
上位 15 のツールセット12 テキスト ツール (テキストを追加, 文字を削除する、...)   |   50+ チャート 種類 (ガントチャート、...)   |   40+ 実用的 (誕生日に基づいて年齢を計算する、...)   |   19 挿入 ツール (QRコードを挿入, パスから画像を挿入、...)   |   12 変換 ツール (数字から言葉へ, 通貨の換算、...)   |   7 マージ&スプリット ツール (高度な結合行, 分割セル、...)   |   ... もっと

Kutools for Excel で Excel スキルを強化し、これまでにない効率を体験してください。 Kutools for Excelは、生産性を向上させ、時間を節約するための300以上の高度な機能を提供します。  最も必要な機能を入手するにはここをクリックしてください...


Officeタブは、タブ付きのインターフェイスをOfficeにもたらし、作​​業をはるかに簡単にします

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