■VBAでコンボボックス(ActiveX)
ヤマダも完全には分かってないですがメモ書きです。
「開発」タブ>挿入>コンボ ボックス(ActiveXコントロール)を選択
「開発」タブ>デザインモード>コンボボックスを右クリック>コードの表示
▽以下コード
Private Sub ComboBox1_Click()
'--プルダウンを初期化--
'「i」とか「j」はfor文打つ時に定番の、特に意味ない変数名です
Dim j As Integer
'コンボボックスのリストの個数分、For文で処理を繰り返します
For j = ComboBox1.ListCount To 0 Step -1
If ComboBox1.ListCount > 0 Then
'ComboBox1のリストの「0番」,先頭を消します(達磨落とし方式)
ComboBox1.RemoveItem 0
End If
Next j
'------------------------
'--最後の行を探す--
Dim LastGyo As Integer
'.End(xlUp) は、J列(10)を下から数えて値の入ってる最後のセルを探します
'.Row で行番号を出します
'でもそれだけだと数式で空欄にしてる行まで「値が入ってる」扱いにしてしまう
For LastGyo = Worksheets("Sheet1").Cells(Rows.Count, 10).End(xlUp).Row To 1 Step -1
'なのでFor文にして、LastGyoから1づつ引いていき、
'実際に値が入ってるセルの時にFor文を終了します
If Worksheets("Sheet1").Cells(LastGyo, "J") <> "" Then Exit For
Next LastGyo
'--------------------
'--値を追加します--
Dim i As Integer
For i = 9 To LastGyo
ComboBox1.AddItem Worksheets("Sheet1").Range("J" & i).Value
Next i
'--------------------
End Sub
ブログ一覧 |
エクセル | 日記
Posted at
2024/04/26 15:10:19