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