Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


56996 / 76738 ←次へ | 前へ→

【24483】Re:データ取得
発言  ichinose  - 05/4/22(金) 23:45 -

引用なし
パスワード
   ▼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
>-------------------------------------
0 hits

【24479】データ取得 VBA初心者 05/4/22(金) 22:09 質問
【24480】Re:データ取得 ponpon 05/4/22(金) 22:53 発言
【24481】Re:データ取得 VBA初心者 05/4/22(金) 23:33 質問
【24483】Re:データ取得 ichinose 05/4/22(金) 23:45 発言
【24484】Re:データ取得 訂正 ichinose 05/4/22(金) 23:58 発言
【24519】Re:データ取得 訂正 ponpon 05/4/23(土) 23:31 質問
【24521】Re:データ取得 訂正 ichinose 05/4/24(日) 1:02 発言
【24529】Re:データ取得 訂正 ponpon 05/4/24(日) 14:10 お礼
【24485】Re:データ取得 ウッシ 05/4/23(土) 0:03 回答
【24486】Re:データ取得 VBA初心者 05/4/23(土) 0:12 質問
【24487】Re:データ取得 ichinose 05/4/23(土) 0:23 発言
【24489】Re:データ取得 VBA初心者 05/4/23(土) 1:00 お礼
【24492】Re:データ取得 ichinose 05/4/23(土) 9:06 発言
【24493】Re:データ取得 ウッシ 05/4/23(土) 9:40 発言

56996 / 76738 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free