Excel VBA | ユーザーフォーム(GUI)を使って選択肢を選ぶと数式が変わる

VBA
スポンサーリンク

ここからは ユーザーフォーム(GUI)を使って選択肢を選ぶと数式が変わる 例を紹介します。Excel VBAでは「UserForm」を作成し、コンボボックスやラジオボタンで選択肢を用意して、その選択に応じてセルに数式を自動入力することができます。


シナリオ

  • ユーザーフォームに「計算方法」を選ぶコンボボックスを用意
    (例: 合計 / 平均 / 最大値)
  • ユーザーが選んだ方法に応じて、シートのセルに数式を入れる

手順

1. ユーザーフォームを作成

  1. VBAエディタで「挿入」→「ユーザーフォーム」を選択
  2. フォームに ComboBoxCommandButton を配置
  3. ComboBoxに選択肢を追加(例: “合計”, “平均”, “最大値”)

2. コード例

' ユーザーフォームの初期化時に選択肢を追加
Private Sub UserForm_Initialize()
    ComboBox1.AddItem "合計"
    ComboBox1.AddItem "平均"
    ComboBox1.AddItem "最大値"
End Sub

' ボタンを押したら選択に応じて数式をセルに入れる
Private Sub CommandButton1_Click()
    Dim choice As String
    choice = ComboBox1.Value
    
    Select Case choice
        Case "合計"
            Range("B2").Formula = "=SUM(A2:A10)"
        Case "平均"
            Range("B2").Formula = "=AVERAGE(A2:A10)"
        Case "最大値"
            Range("B2").Formula = "=MAX(A2:A10)"
        Case Else
            MsgBox "選択肢を選んでください"
    End Select
End Sub
VB

👉 ユーザーがフォームで「平均」を選んでボタンを押すと、B2セルに =AVERAGE(A2:A10) が自動で入力されます。


応用アイデア

  • ラジオボタンで「掛け算」「割り算」を選べるようにする
  • テキストボックスで「掛け算する係数」を入力させる
  • 複数セルに一括で数式を入れるように拡張する

ポイント

  • UserForm_Initialize で選択肢を準備
  • CommandButton_Click で選択内容を判定し、数式をセルに代入
  • Select Case を使うと条件分岐がわかりやすい

これで「GUIで選んだ内容に応じて数式が変わる」仕組みが作れます。

タイトルとURLをコピーしました