Excel2007で顧客管理ソフトを作ってみよう

Step 18 検索フォームに「次へ」ボタンを追加

検索フォームに「次へ」ボタンを追加しました。
検索し、見つかれば「次へ」ボタンを使用可能にします。「次へ」ボタンをクリックすると現在表示されている顧客IDより次に大きな顧客IDを探し表示します。セルの取得は、Find を使います。



Homeへ > Excelでアプリケーションソフト2 > 顧客管理ソフト

ユーザーフォームのコード

下記のVBAコードを追加してください。

'IDからセル位置を探す
Private Function ExCopyToSheetCheck(id As Long, ByRef srow As String) As Boolean
    Dim lrow As Long
    Dim tRange As Range
    Dim s As String
    
    srow = ""
    ExCopyToSheetCheck = False
    s = ""
    
    lrow = Sheets("検索").Range("A1048576").End(xlUp).Row
        
    If lrow = 1 Then
        srow = "A2"
    Else
        Set tRange = Sheets("検索"). _
            Range("A2", Sheets("検索").Range("A2").Offset(rowOffset:=lrow)). _
            Find(What:=id, LookIn:=xlValues) '
        If Not tRange Is Nothing Then
            srow = tRange.Address
            ExCopyToSheetCheck = True
        Else
            srow = "A" & lrow + 1
        End If
    End If
End Function

'次へボタン
Private Sub CommandButton4_Click()
    Dim sr As String
    
    If Sheets("入力").Range("E3") = "" Then
        Beep
    Else
        If IsNumeric(Sheets("検索").Range("CT5")) Then
            ExCopyToSheetCheck Sheets("検索").Range("CT5"), sr
            ExDataDisp sr
        Else
            CommandButton4.Enabled = False
            Beep
        End If
    End If
End Sub


シート画面

次へボタンをクリックすると、現在表示されている顧客IDより一つ大きい顧客IDを検索フォーム内で探し、見つかれば、入力フォームにそのレコードを表示します。
下では、フリガナに「イ」が含まれる顧客を抽出しています。
次のレコードを表示

見つからなければ、ブザーを鳴らし、「次へ」ボタンを使用できないようにします。
レコードが見つからなければ、Enabled = False へ

Homeへ > Excelでアプリケーションソフト2 > 顧客管理ソフト

■■■
このサイトの内容を利用して発生した、いかなる問題にも一切責任は負いませんのでご了承下さい
■■■
当ホームページに掲載されているあらゆる内容の無許可転載・転用を禁止します


Copyright (c) Excel-Excel ! All rights reserved