[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『複数列の最終行までの値をコンボボックスに入れるには』(フィロ)
要約の通りです。
各列、最終行までの値をフォーム上のコンボボックスに入れるにはでどうするべきか。
列は全て4列あります。
行は見出し行(項目)があり、各項目(列)ごとに最終行が異なります。
それぞれの最終行を取得し、コンボボックスに入れたいと考えてます。
.Cells(.Row.Count, 1).End(xlUp).Row
例えば上記コードはA列のみですが。
ここで複数列を指定は出来ないのでしょうか?
< 使用 Excel:Excel2010、使用 OS:Windows7 >
こんなことがしたかったのでしょうか?
Private Sub UserForm_Initialize() With Sheets("Sheet1").Range("A1").CurrentRegion ComboBox1.List = .Resize(.Rows.Count - 1).Offset(1).Value ComboBox1.ColumnCount = 4 End With End Sub
(β) 2016/09/16(金) 20:14
ComboBox1.ColumnCount = 4
これが気になる所です。
ちなみに、下記コードで一応、実現出来たのですが...
for文が多い気が凄くします...
Private Sub UserForm_Initialize()
Dim i As Integer
cbSex.Clear cbNendai.Clear cbTii.Clear cbSex.Clear
For i = 2 To Worksheets("DATA").Cells(Rows.Count, 1).End(xlUp).Row cbSex.AddItem Worksheets("DATA").Cells(i, 1).Value Next
For i = 2 To Worksheets("DATA").Cells(Rows.Count, 2).End(xlUp).Row cbNendai.AddItem Worksheets("DATA").Cells(i, 2).Value Next
For i = 2 To Worksheets("DATA").Cells(Rows.Count, 3).End(xlUp).Row cbTii.AddItem Worksheets("DATA").Cells(i, 3).Value Next
For i = 2 To Worksheets("DATA").Cells(Rows.Count, 4).End(xlUp).Row cbCode.AddItem Worksheets("DATA").Cells(i, 4).Value Next
End Sub
(フィロ) 2016/09/16(金) 20:30
あぁ、4列というのは、4つのコンボボックスに、それぞれ1列ずつということでしたか。 では、以下のように。
Private Sub UserForm_Initialize()
With Worksheets("DATA")
cbSex.List = Range("A2", Range("A" & Rows.Count).End(xlUp)).Value cbNendai.List = Range("B2", Range("B" & Rows.Count).End(xlUp)).Value cbTii.List = Range("C2", Range("C" & Rows.Count).End(xlUp)).Value cbCode.List = Range("D2", Range("D" & Rows.Count).End(xlUp)).Value
End With
End Sub
(β) 2016/09/16(金) 21:01
けれども、出来ませんでした...。構文としては凄く好きです。
(フィロ) 2016/09/16(金) 21:45
>>けれども、出来ませんでした...。
ん? できますよ。 それとも、要件を誤解しているのかな。
できないというのは、どう できなかったんですか?
あっあっ!!! ごめん。
すべての Range を .Range にしてください。(1コードに2か所ずつ)
(β) 2016/09/16(金) 22:11
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.