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

Step 13 「最終」へレコード移動ボタンの処理

下記の順の動作になります。
(1)最大の顧客No..を探す
   見つかれば、さらにそのセル位置を取得します。
(2)入力変更があればメッセージを表示
(3)一覧から入力部へデータをコピー

最大の顧客No..を探すには、MAXワークシート関数を使用しています。
ans = Application.WorksheetFunction.Max(tRange)
これでtRange内の最大値が取得できます。
次にFindメソッドで、セル位置を取得します。
Set tRange = tRange.Find(What:=ans, LookIn:=xlValues, LookAt:=xlWhole)
What:=ans: 検索する値
LookIn:=xlValues: 検索の対象を値としています。
LookAt:=xlWhole): 完全に同じセルを検索します。
条件に当てはまるセル が存在しない場合には、Nothingが返るので、  If Not tRange Is Nothing Then で判定しています。


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

シートのVBAコード

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

'最終ボタン
Private Sub CommandButton4_Click()
    Dim sr As String
    
    If ExFindMaxRange(sr) Then
        If ExDataChangeMsg = False Then
            Exit Sub
        End If
    
        ExDataDisp sr
    Else
        Beep
    End If
End Sub


'指定範囲から最大値を検索
Private Function ExFindMaxRange(ByRef srow As String) As Boolean
    Dim ans As Long
    Dim tRange As Range
    
    ExFindMaxRange = False
    '1列目の最大値を捜す
    Set tRange = Sheets("一覧").Columns(1)
    ans = Application.WorksheetFunction.Max(tRange)
    
    '最大値のセルを取得
    Set tRange = tRange.Find(What:=ans, LookIn:=xlValues, LookAt:=xlWhole)
    If Not tRange Is Nothing Then
        srow = tRange.Address(RowAbsolute:=False, ColumnAbsolute:=False)
        ExFindMaxRange = True
    End If
End Function

シート画面

「最終」ボタンをクリックすると、最大の顧客Noを探し表示します。
顧客管理 最終レコードを表示

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

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


Copyright (c) Excel-Excel ! All rights reserved