ここからは ユーザーフォーム(GUI)を使って選択肢を選ぶと数式が変わる 例を紹介します。Excel VBAでは「UserForm」を作成し、コンボボックスやラジオボタンで選択肢を用意して、その選択に応じてセルに数式を自動入力することができます。
シナリオ
- ユーザーフォームに「計算方法」を選ぶコンボボックスを用意
(例: 合計 / 平均 / 最大値) - ユーザーが選んだ方法に応じて、シートのセルに数式を入れる
手順
1. ユーザーフォームを作成
- VBAエディタで「挿入」→「ユーザーフォーム」を選択
- フォームに ComboBox と CommandButton を配置
- 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で選んだ内容に応じて数式が変わる」仕組みが作れます。


