ユーザーフォーム 複数シート検索し一致したらアクティブ化 VBA

VBAユーザーフォーム-複数シート検索し一致したらアクティブ化する-アイキャッチ ExcelVBA

ユーザーフォームで複数シートを検索して、一致したら該当セルをアクティブにする方法をご紹介します。

このページのマクロコードは、コピペで使えます。
ぜひお試しください!

ユーザーフォーム作成

ユーザーフォームを作成します。


 

Excelシート

A列~D列にデータが入っています。
ユーザーフォームで、A列を検索します。


 

「Sheet1」にマクロボタンを設置します。


 

以下コードを標準モジュール「Module1」に入力して、
ボタンをクリックしたときに、ユーザーフォームが開くようにします。


Sub ボタン1_Click()
    UserForm1.Show vbModeless
End Sub

 

マクロコードを「Module1」に入力した画面


 

マクロコードを入力

マクロコードを「UserForm1」に入力します。


Private Sub CommandButton1_Click()
'検索ボタンをクリックしたときの処理

Dim Target As String
Dim Ws As Worksheet
Dim Chk As Boolean
Dim i As Long

    '発見フラグを初期化
    Chk = False

    'テキストボックスに入力した値を変数代入
    Target = Me.TextBox1.Text
    
    'テキストボックスが空じゃなかったら
    If Target <> "" Then

        '全シートをループ
        For Each Ws In Worksheets
    
            'シート選択
            Ws.Select
    
            '各シートのA列の1行目から最終行までループ
            For i = 1 To Ws.Cells(Rows.Count, 1).End(xlUp).Row
    
                'テキストボックスに入力した値が見つかったら
                If Cells(i, 1) = Target Then
    
                    '該当シートの該当セルを選択状態にする
                    Ws.Cells(i, 1).Select
                    
                    '発見フラグ
                    Chk = True
                    
                    'ジャンプ
                    GoTo MyJump
                End If
            Next i
        Next Ws
    
    Else
        '管理番号を入力してない場合
        MsgBox "管理番号を入力してください"
        Exit Sub
    End If
    
MyJump:
    
    If Chk = False Then
        MsgBox "管理番号が見つかりませんでした"
    Else
        MsgBox "管理番号が見つかりました"
    End If
   
End Sub

Private Sub CommandButton2_Click()
'閉じるボタンをクリックしたときの処理
    Unload UserForm1
End Sub

 

マクロコードを入力する場所「UserForm1」


 

動作

ユーザーフォームのテキストボックスに値を入力して、

「検索」ボタンをクリックします。


 

検索値が見つかった場合、該当シートの該当セルを選択状態にします。

メッセージボックスに「管理番号が見つかりました」と表示します。


 

検索値が見つからない場合、

メッセージボックスに「管理番号が見つかりませんでした」と表示します。


 

テキストボックスが空欄のまま「検索」ボタンをクリックした場合、

メッセージボックスに「管理番号を入力してください」と表示します。


 
 
この記事がお役に立ちますと幸いです。
 
・【ExcelVBA】ユーザーフォーム作成の事例まとめ
 

【VBAユーザーフォーム】何ができるの?:使用例29選
...

 

「たった1秒で仕事が片づくExcel自動化の教科書【増強完全版】」
「5時間かかる作業が3時間でできます」ではなく「1秒で終わらせます」へ
毎日の業務を瞬時に終わらせるしくみを解説