|
| Menuへ |
| Excel2007で顧客管理ソフトを作ってみよう |
Step 16 検索(あいまい)を実行し、結果を抽出する
検索ユーザーフォームの項目欄に検索文字を入力し、「検索」ボタンをクリックすると、一覧シートから抽出し検索シートにコピーします。今回はここまでで、次回は入力フォームにこれを表示するようにします。
・「検索」ボタンがクリックされた場合
(1)顧客IDが不正でないかチェック
(2)顧客IDが入力されていれば、AutoFilterで抽出
(3)フリガナが入力されていれば、AutoFilterで抽出
(4)一覧シートの最終行を探し、抽出データの有無をチェック
(5)抽出結果があれば、検索シートにコピー
|
| ユーザーフォームのコード |
|
下記のコードを追加してください。
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
|
|
|
| シート画面 |
|
フリガナ欄に「イ」を入力し、フリガナにイが含まれる顧客を検索します。

見つかると「見つかりました」と表示されます。ない場合は、「見つかりませんでした」と表示されます。

見つかった場合は、抽出結果を「検索」シートにコピーされます。下図では、フリガナにイが含まれる顧客が
表示されています。
 |
|
|
|
|
|
|
|
Topへ
|
■このサイトの内容を利用して発生した、いかなる問題にも一切の責任は負いませんのでご了承下さい。■
当ホームページに掲載されているあらゆる内容の無許可転載・転用を禁止します。
Copyright (c) 2006-2007 Excel-Excel ! All rights reserved. |
|