プロが教えるわが家の防犯対策術!

VBA VLOOKUpについて
すいません

例えば
B1セルに名前があり
Q1セルにIDがあります
そこで
UserFormを開いた時に表示させたい場合
どのような記述にすれば良いのでしょうか??

Dim wbMyBook As Workbook 'このブックをセット
Dim w As Worksheet 'このブックのWシートをセット
Dim vRet As Variant

'使用するブックとシートをセット
Set wbMyBook = Workbooks(ThisWorkbook.Name)
Set wsKanjya = wbMyBook.Worksheets("W")

vRet = WorksheetFunction.VLookup(TextBox1.Text, _
Sheets("w").Range("A:IV"), _
17, _
False)
  If vRet = "402-B" Then
w.Cells(lng, 2) = TextBox1.Text
Exit For
End If
Next lng

これでは当然駄目です!!
組み合わせて使うと混乱してしまいます!
記述を教えてください。

A 回答 (4件)

>Fromが表示されその時にTextBoxに名前を表示させたいのです



セルの値をテキストボックスに入れるのは簡単ですが、テキストボックスの数だけしかその処理ができませんよね。

>どのように変化させれば良いのでしょうか?

いくつもの方法がありますが、マクロ作成の目的や貴方が望む動作というのが解らないので何とも言えません。

普通はテキストボックスに入れたデータから検索(今回はVLOOKUP)して、結果を別のテキストボックスに表示するなどの方法をとります。
マクロを見ると、検索値が特定データ(402-B)の場合はテキストボックスの値を任意のセルに入れているようですが・・・。

単に検索して自動記入するだけならフォームやテキストボックスなんて無くても普通にマクロで処理すれば良いと思いますが?

マクロを組む上では、はっきりとした仕様が解らないと曖昧な回答のやりとり終わってしまいますよ。

○○をするためのコード
△■をするためのコード
□○をするためのコード
などと分離して、最終的に組み立てる事を考えてみては?

この回答への補足

何度もありがとうございます。

Fromで表示は一覧できる利点と、DATAを他の人が弄れないようにするためです。
私がしたいのは
Fromで表示させると自動的に
セルの17列(Q)に405-BというIDを検索して
数字を見つけたら
今度は、2列(B)の名前が書かれているところを
TextBoXに転写させ名前を表示させたいです。

そんなことは出来ないのでしょうか?
すいません何度も質問してしまって・・・

補足日時:2010/02/23 13:27
    • good
    • 0

No.3です



> そこからFromのTextBoxに写す場合はどのように
> すれば良いのでしょうか??

TextBox1に、Sheet2のB1セルの値を表示するならこんな感じです。

Private Sub UserForm_Initialize()
 TextBox1.Value = Sheets("Sheet2").Range("B1").Value
End Sub
    • good
    • 0
この回答へのお礼

ありがとうございます!!
出来ました!!

お礼日時:2010/02/24 02:26

表示させる値をシート上に用意しておいた方が良いかと思います。


シートWの適当なセルに↓の式を入れおいてTextBoxはそのセルの値を表示させましょう。

=IF(ISNUMBER(MATCH("405-B",Q:Q,0)),OFFSET(B1,MATCH("405-B",Q:Q,0)-1,0),"")

この回答への補足

回答ありがとうございます!
別のSheetに写しました。
そこからFromのTextBoxに写す場合はどのように
すれば良いのでしょうか??

A    B
405-B Aさん

このようにしました!

補足日時:2010/02/24 00:11
    • good
    • 0

>UserFormを開いた時に表示させたい場合



これだと UserForm_Initialize() イベントになりますが、この状態ではTextBox1.Textが空になっているのでエラーになると思いますよ。

通常はTextBox1のイベント等に記載するのでは?

>これでは当然駄目です!!

何が駄目なのでしょうか?
提示された部分としては問題無く動作していると思いますが?

この回答への補足

ありがとうございます。
Sheet上のボタンをクリックしたら
Fromが表示され
その時にTextBoxに名前を表示させたいのです。

それがいくつものTextBoxがあります・・・・
どのように変化させれば良いのでしょうか?

この記述だと、名前も表示されません!!
すいません教えて下さい

補足日時:2010/02/23 10:42
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!