VBA講座 レッスン4 イベントプロシージャ

配列とWorksheet_Change

  • Sheet2にコードと担当者
    Sheet1に品番を入れます。担当者コードを入れると担当者が表示されます。
    これは、LOOKUP関数と同じですね。




Sheet2にないコードを入れると「見つかりません」とメッセージが表示されます。




では、下記のプログラムを実行すると担当者が表示されます。


Private Sub Worksheet_Change(ByVal Target As Range)
    Dim Au() As Variant
    
    If Target.Column <> 2 Then Exit Sub
    
    nRow = Target.Row
    nCol = Target.Column
    
    wsEnd = Sheet2.Range("A1").CurrentRegion.Rows.Count
    
    ReDim Au(2, wsEnd)
    
    If Cells(nRow, nCol) <> "" Then
        '配列Au()にコードと担当者を入れる
        For i = 1 To wsEnd
            Au(0, i) = Sheet2.Cells(i, 1)
            Au(1, i) = Sheet2.Cells(i, 2)
        Next i
   
        For j = 1 To wsEnd
            If Cells(nRow, nCol) = Au(0, j) Then
                Application.EnableEvents = False
                Cells(nRow, nCol + 1) = Au(1, j)
                Application.EnableEvents = True
                
                Exit Sub
            End If
        Next j
        MsgBox ("見つかりません")
    End If

End Sub



  • ここで問題です。
  • 担当者の隣のD列に男女の性別を表示できるようにしましょう。
  • がんばってね( ^)o(^ )

中級レッスン4 ダウンロードはこちら