【VBAマクロ】検索ボックスを作成する方法【エクセル初心者向け】

スポンサードリンク
VBA
過去の自分
過去の自分

エクセルの標準機能にある検索ボックスも便利なんだけど、
作業しているうちに邪魔になるときがある…。
エクセル内に検索ボックスを作って、マクロで検索できない?

今の自分
今の自分

なるほど…。
では今回は、「エクセルのマクロで検索ボックスを作成する方法」
VBAマクロ歴3年の私が、できるだけわかりやすく解説いたします。

スポンサードリンク

エクセルのマクロで検索ボックスを作成する方法

「Find」を使って検索ができるマクロを作り、検索ボタンで実行できるように登録します。
まずは完成見本をどうぞ。

完成見本

ひとまず全コードと実行結果をご覧ください。
解説は後ほど行います。

実行結果

今回は、「Sheet2」の「A1セル」に入力された検索ワードを、「Sheet1」の中から検索するというマクロです。

実行結果

検索ボタンを押して値が見つかれば、そのセルにジャンプするという仕様です。

全コード

Sub 検索()
    Dim ws1 As Worksheet
    Dim ws2 As Worksheet
    Dim searchValue As String
    Dim foundCell As Range
    
    Set ws1 = ThisWorkbook.Sheets("Sheet1")
    Set ws2 = ThisWorkbook.Sheets("Sheet2")
    
    searchValue = ws2.Range("A1").Value
    
    If searchValue = "" Then
        MsgBox "Sheet2のA1セルに検索する値を入力してください。", vbExclamation
        Exit Sub
    End If
    
    Set foundCell = ws1.Cells.Find(What:=searchValue, LookAt:=xlPart, MatchCase:=False)
    
    If Not foundCell Is Nothing Then
        Application.Goto foundCell, True
        MsgBox "見つかりました: " & foundCell.Address, vbInformation
    Else
        ' 見つからなかった場合
        MsgBox "見つかりませんでした。", vbExclamation
    End If
End Sub

手順

手順は以下のとおりです。

  1. 検索ボックスの作成
  2. マクロの作成
  3. 検索ボタンの作成・マクロの登録

まずは検索ボックスを作成しましょう。

検索ボックスの作成

下図のとおり、「Sheet1」に検索したいデータを用意します。

データを用意する

次に、「Sheet2」に検索ボックスを作成するわけですが、
今回はA1セルを検索ボックスの代わりにしているため、特にやることはありません。
わかりやすくするために、セルの色を変えるくらいでしょうか。

A1セルを検索ボックスにする

次に、A1セルの横に検索ボタンを作りたくなりますが、その前にマクロを作成しましょう。

マクロの作成

全コードで紹介したコードを貼り付けるだけでOKです。
コードを貼る場所などマクロの基礎解説は、下記記事をご参考ください。

【簡単な解説】
2~5行目:変数の宣言
7~8行目:シートの取得
10行目:検索ワードの取得
12~15行目:検索ワードが入力されてない場合の処理
17行目:部分一致検索
19~25行目:検索ワード見つかった場合・見つからなかった場合の処理

「変数や宣言」「If文」については、下記記事をご参考ください。

マクロが完成したら、実行テストをしてみましょう。
「Sheet2」の「A1セル」に検索ワードを入力し、実行ボタンを押して動作をチェックしてみてください。

実行ボタン

検索ボタンの作成・マクロの登録

マクロの動作チェックが終わったら、「検索ボタン」を作成してマクロを登録しましょう。
手順は以下のとおりです。

  1. エクセル画面に移行する
  2. 「開発」→「挿入」から「フォームコントロールボタン」を選択
  3. 設置したいセル周辺をクリック
  4. 「マクロの登録」画面で作成したマクロを選択

詳しくは下記記事で解説しております。ご参考ください。

ボタンの作成とマクロの登録ができたら、ボタンを押して動作を確認してみましょう。

▼検索ワードが見つかった場合

検索ワードが見つかった場合の見本

▼検索ワードが見つからなかった場合

検索ワードが見つからなかった場合の見本

▼検索ワードが入力されていなかった場合

検索ワードが入力されてない場合の見本
スポンサードリンク

うまく動作しないときの対処法

エラーが発生する

コンパイルエラー・実行時エラー

コードに問題がある場合が多いです。
「”」や()など、2つセットの記号が片方だけになっていないかなど、コードを再確認しましょう。
セル名を「”」で囲っていない場合でもエラーが発生します。

警告表示

マクロが無効になっている表示

上記の表示が出た場合は、マクロが無効になっています。
エクセルに表示された「コンテンツの有効化」をクリックするか、下記記事を参考にセキュリティ設定を変更してください。

スポンサードリンク

最後に

VBAマクロを使って、検索ボックスを作成する方法を解説いたしました。

当ブログでは、VBAマクロやPythonなど、時間を生み出すプログラミング術を公開しております。
この記事がわかりやすいと感じた方は、他の記事も読んでいってください。

最後までお読みいただき、ありがとうございました。がんばってください!

タイトルとURLをコピーしました