ビジネスに役立つ講座や交流会を開催
社長・個人事業主からサラリーマン・主婦まで、どなたでも
アベノ塾

ホーム  会場案内  お問合せ

〒545-0052
大阪市阿倍野区阿倍野筋3-12-2
あべのクオレ1F
(ナガセキャリアプラザ アベノ校)
TEL 06-6647-5571

(3)VLOOOKUP関数

コード番号を入力すれば得意先シートの得意先名を検索して得意先名をコード番号の隣に表示します。
・vlookup関数の場合
vlookup関数を得意先名に作成します。
= VLOOKUP(A2,得意先!$A$1:$B$14,2)
得意先シートは14行までデータが入力されているとします。
1列目がコード番号2列目が得意先名が入力されています。
得意先名のすべての行にコピーするために絶対座標$A$1:$B$14を使っています。
コード番号が入力さえていないとエラーになりますので条件文をつけておきます。
=IF(A2="","",VLOOKUP(A2,得意先!$A$1:$B$14,2))
・VBAの場合
ではVBAではどのようになるかということです。
今回の場合はvlookup関数を使ったほうが楽です。
VBAの特徴はシートに計算式を記入しませんので計算式を誤って消してしまうということがないぐらいです。
勉強のために作っていきます。
7行A列(cells(1,7))にコード番号8を入力しておきます。
そこでエンターキーを押すと得意先名が表示すようにするためにはキーコード13を判断しますが今回は得意先検索ボタンをクリックしたときに得意先名が表示するようにします。
今入力したセルをActiveCellで取得します。
ボタンの付いている売上シートがアクティブですからシート名を省略できますが
シート名をつけた方がわかりやすいかもわかりません。
Worksheets("売上").Cells(ActiveCell.Row, 2) = Worksheets("得意先").Cells(i, 2)
条件付き繰り返しが理解できておれば問題はないと思います。

Sub kensaku()
    Dim i As Long
    Dim lastRow As Long
    lastRow = Worksheets("得意先").Cells(Rows.Count, 1).End(xlUp).Row
    For i = 2 To lastRow
        If ActiveCell = Worksheets("得意先").Cells(i, 1) Then
           Cells(ActiveCell.Row, 2) = Worksheets("得意先").Cells(i, 2)
           Exit Sub
        End If
    Next
End Sub