Excel2007で顧客管理ソフトを作ってみよう
Step 16 あいまい検索を実行し、結果を抽出する
検索ユーザーフォームの項目欄に検索文字を入力し、「検索」ボタンをクリックすると、一覧シートから抽出し検索シートにコピーします。今回はここまでで、次回は入力フォームにこれを表示するようにします。
・「検索」ボタンがクリックされた場合
(1)顧客IDが不正でないかチェック
(2)顧客IDが入力されていれば、AutoFilterで抽出
(3)フリガナが入力されていれば、AutoFilterで抽出
(4)一覧シートの最終行を探し、抽出データの有無をチェック
(5)抽出結果があれば、検索シートにコピー
Homeへ >
Excelでアプリケーションソフト2 >
顧客管理ソフト
ユーザーフォームのコード
下記のVBAコードを追加してください。
Private Sub CommandButton1_Click()
Dim tRange As Range
Dim lrow As Long
Dim s1 As String
Dim bFlag As Boolean
If TextBox1 <> "" And Not IsNumeric(TextBox1) Then
MsgBox "顧客IDには数値を入力してください。"
TextBox1.SetFocus
Exit Sub
End If
bFlag = False
If TextBox1 <> "" Then
Worksheets("一覧").Range("A2").AutoFilter field:=1, Criteria1:=TextBox1
bFlag = True
End If
If TextBox2 <> "" Then
Worksheets("一覧").Range("A2").AutoFilter field:=3, Criteria1:="*" & TextBox2 & "*"
bFlag = True
End If
If bFlag = False Then
MsgBox "検索内容を入力してください。"
TextBox1.SetFocus
Exit Sub
End If
Sheets("検索").Cells.Clear
'最終行を捜す
lrow = Sheets("一覧").Range("A1048576").End(xlUp).Row - 1 '
If lrow = 1 Then
Label2.Visible = True
Label3.Visible = False
Else
Label3.Visible = True
Label2.Visible = False
s1 = "A1:K" & lrow + 1
Sheets("一覧").Range(s1).Copy
Sheets("検索").Range("A1").PasteSpecial
End If
Worksheets("一覧").AutoFilterMode = False
End Sub
シート画面
フリガナ欄に「イ」を入力し、フリガナにイが含まれる顧客を検索します。
見つかると「見つかりました」と表示されます。ない場合は、「見つかりませんでした」と表示されます。
見つかった場合は、抽出結果を「検索」シートにコピーされます。下図では、フリガナにイが含まれる顧客が
表示されています。
Homeへ >
Excelでアプリケーションソフト2 >
顧客管理ソフト
■■■
このサイトの内容を利用して発生した、いかなる問題にも一切責任は負いませんのでご了承下さい
■■■
当ホームページに掲載されているあらゆる内容の無許可転載・転用を禁止します
Copyright (c) Excel-Excel ! All rights reserved