[[20140516152124]] 『帳票のセル行値をvlookup関数で取得しListBoxへ表』(かーさ) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『帳票のセル行値をvlookup関数で取得しListBoxへ表示させる方法について』(かーさ)

お世話になっております。

UserForm上のリストボックスへセル値を表示させたいと考えております。

UserForm構成は

・TextBox1 にID番号を入力します。
・ListBox1 にTextBox1のID番号を取得しVlookup関数で各セルの値を取得します。

下記は現在作成中のコードですが、ListBoxのコード部分をどのようにすればよいか分からず困っております。
アドバイスの程よろしくお願いします。

Private Sub 値の取得()

    Dim x As Long
    On Error GoTo myError
  If TextBox1 = "" Then
          MsgBox "データなし"
    Else 'エラーがなければ処理
    x = TextBox1.Value 'テキストボックス1の値を取得

    With ActiveSheet

    'リストボックス1へセルの値を取得したい
        ListBox1.Value = Application.WorksheetFunction.VLookup(x, Range("Sheet1"), 2, False)
        ListBox1.Value = Application.WorksheetFunction.VLookup(x, Range("Sheet1"), 15, False)
        ListBox1.Value = Application.WorksheetFunction.VLookup(x, Range("Sheet1"), 28, False)
        ListBox1.Value = Application.WorksheetFunction.VLookup(x, Range("Sheet1"), 36, False)
        ListBox1.Value = Application.WorksheetFunction.VLookup(x, Range("Sheet1"), 45, False)

    End With
  End If
    Exit Sub
myError:
    TextBox1.Value = "データなし"
    TextBox2.Value = ""
End Sub

< 使用 Excel:Excel2010、使用 OS:Windows7 >


ListBox1.AddItem Application.WorksheetFunction.VLookup(x, Sheet1.Range("A:AZ"), 2, False)
(???) 2014/05/16(金) 15:54

ご回答ありがとうございました。

TextBox1の検索値に基づきセル値を表示できました。

これを、複数の列位置にある値をリスト化するためには、どのように記述すればよろしいのでしょうかアドバイスの程よろしくお願いします。

        ListBox1.AddItem Application.WorksheetFunction.VLookup(x, Range("範囲"), 28, False)
    '※列位置 15,28,36,45 

Private Sub 値の取得()

    Dim x As Long
    On Error GoTo myError
  If TextBox1 = "" Then
          MsgBox "データなし"
    Else 'エラーがなければ処理
    x = TextBox1.Value 'テキストボックス1の値を取得

    With ActiveSheet
    '
    TextBox2.Value = Application.WorksheetFunction.VLookup(x, Range("範囲"), 6, False)
        ListBox1.AddItem Application.WorksheetFunction.VLookup(x, Range("範囲"), 28, False)
    ’※列位置 15,28,36,45 

    End With
  End If
    Exit Sub
myError:
    TextBox2.Value = "値なし"
End Sub
(かーさ) 2014/05/16(金) 17:06

結果を横に並べたい、ということでしょうか?

 ListBox1.AddItem Application.WorksheetFunction.VLookup(x, Range("範囲"), 15, False) & vbTab & _
                  Application.WorksheetFunction.VLookup(x, Range("範囲"), 28, False) & vbTab & _
                  Application.WorksheetFunction.VLookup(x, Range("範囲"), 36, False) & vbTab & _
                  Application.WorksheetFunction.VLookup(x, Range("範囲"), 45, False)
(???) 2014/05/16(金) 17:19

コメントありがとうございます。

こんな感じでイメージしております。

 ■UserForm1

┌────┐
│ 101 TextBox1
├────┤
│ あ様 TextBox2
└────┘

┌───┐
│ あ1 ListBox1
┣━━━┫
┃ あ3
┣━━━┫
│ あ2
│  
│ あ4
│  
│ あ5
└───┘

(かーさ) 2014/05/16(金) 18:02


下記でできました。

With ListBox1

     .AddItem・・・・・
     .AddItem・・・・・
     .AddItem・・・・・
     .AddItem・・・・・
     .AddItem・・・・・
EndWith

もう少しいじくってみます。
(かーさ) 2014/05/16(金) 20:46


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.