0
0

More than 3 years have passed since last update.

【備忘録】【VBA】検索ツール  

Posted at

背景

課題として検索ツールの作成が出されたので、今までVBA・マクロは全く触って来なかったんですが、なんとか完成しました。
今回は、その備忘録です。

目的

別シートの顧客リストから、名前検索して指定した項目のみを抽出させる

準備


1枚目のシート→【顧客リスト】
2枚目のシート→【検索ツール】

【検索ツール】の名前を記入するところは、セルの名を定義する。
例)D3 → 氏名

VBA

Option Explicit    ←決まり文句


Sub 名前検索()   ←マクロの名前決め

Dim 氏名 As String
Dim Count As Long


'入力した値の取得
氏名 = Sheets("【検索ツール】").Range("氏名")

'もし入力されていたら
If 氏名 <> "" Then

    '検索結果のクリア
    Sheets("【検索ツール】").Range("C86").CurrentRegion.ClearContents

    '【顧客リスト】にフィルターをかける
    With Sheets("【顧客リスト】")
    .Range("A1").AutoFilter Field:=2, Criteria1:=氏名
    End With

        'もし入力された値のデータがない、間違いがある場合
        If Sheets("【顧客リスト】").AutoFilter.Range.Columns(1).SpecialCells(xlCellTypeVisible).Count = 1 Then
        'エラーの表示
        MsgBox "データがない、もしくは名前が間違っています"



        'もしデータがあったら
        Else
        With Sheets("【顧客リスト】")
        'コピー
        .Range("D:G,M:N").Copy
        'ペースト
        Sheets("問題").Range("C83").PasteSpecial
        Range("C83:H83").Interior.Color = RGB(250, 241, 211)
        'フィルター解除
        .Range("A1").AutoFilter
        End With
        End If


'入力されてない場合
Else
MsgBox "氏名を入力してください", vbExclamation


End If
End Sub

後日談

これエクセルでしかできないんですな。
家でできなかったからネットカフェで泣きながら2日かけて作成したげな。
嘘。楽しかったです。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0