|
▼VBA初心者 さん、ponpon さん、こんばんは。
新規ブックのSheet1という名前のシートに例の
A B C D E
1 会社名 個人ID 名前
2 東北 1010
3 東北 1011
4 東北 1012
5 東北 1013
* *
* *
25 東北 1035 ← 会社の最終データのID取得
26 水野 2010
27 水野 2011
28 水野 2012
29 水野 2013
のデータが入っていたとします。
Sheet2は、ワーク領域として使用しますから、空けておいてください。
次にユーザーフォーム(Userform1)の構成です。
会社名選択のコンボボックスコントロール(Combobox1)
最終ID表示用ラベルコントロール(ラベル1)
最終ID取得実行ボタン(Commandbutton1)を配置して下さい。
では、コードです。
Userform1のモジュールに
'=================================================================
Private Sub UserForm_Initialize()
With Label1
.Font.Size = 12
.Caption = ""
.TextAlign = fmTextAlignRight
.SpecialEffect = fmSpecialEffectSunken
.BackColor = &HFFFFFF
End With
With Worksheets("sheet1")
Set rng1 = .Range("a1", .Cells(.Rows.Count, 1).End(xlUp))
With rng1
.AdvancedFilter xlFilterCopy, , Worksheets("sheet2").Range("a1"), True
End With
End With
With Worksheets("sheet2")
Set rng2 = .Range("a2", .Cells(.Rows.Count, 1).End(xlUp))
If rng2.Row > 1 Then
With ComboBox1
.List() = rng2.Value
.Style = fmStyleDropDownList
.ListIndex = 0
End With
.Cells.ClearContents
End If
End With
End Sub
'=================================================================
Private Sub CommandButton1_Click()
Dim rng As Range
Dim r_ad As String
With Worksheets("sheet1")
Set rng = .Range("a2", .Cells(.Rows.Count, 1).End(xlUp))
If rng.Row > 1 Then
r_ad = rng.Address(, , , True)
rr = Evaluate("max(if(" & r_ad & "=""" & ComboBox1.Text & """,row(" & r_ad & ")))")
Label1.Caption = .Cells(rr, 2).Value
End If
End With
End Sub
標準モジュールに
'================================================
Sub main()
UserForm1.Show
End Sub
これでMainを実行してみて下さい。
コンボボックスで選択後、ボタンをクリックして下さい。
最終IDが表示されるはずなんですが・・・。
あくまでも新規ブックに新たに上記を作成して(もちろん、データも)実行して下さいね!!
後は、体裁の問題だと思います。
>ありがとうございます。
>コンボボックスを使って会社名を選択し、データを取得したいのですが
>どうも考えつかなくて・・・
>中途半端ですがコード書きました。
>
>Private Sub CommandButton1_Click()
>Unload UserForm1
>If ComboBox1.ListIndex <> -1 Then
>kaisya = ComboBox1.Value
>ここからイメージがわかなくて・・・
>
>------------------------------------
>Private Sub UserForm_Initialize()
>'会社名選択
>ComboBox1.List = Worksheets("参照").Range("kaisya").Value
>End Sub
>-------------------------------------
|
|