【Excel VBA】インプットボックスでファイルの検索をする

インプットボックス Excel VBA すべて

インプットボックスにファイル名を入力してOKボタンを押すとファイルの検索ができるVBAのプログラムを紹介します。

VBEを起動して「挿入」→「標準モジュール」を選択して標準モジュールを作成します、作成した標準モジュールのModule1に下のコードをコピーして貼り付けます。

Sub ファイルの検索()

Dim name As String
name = InputBox("検索するファイル名を入力してください。")

If StrPtr(name) = 0 Then 'キャンセルボタンが押されたときの処理。

MsgBox "キャンセルが押されました。"
Exit Sub

ElseIf name = "" Then 'ファイル名が入力されていないときの処理。

MsgBox "ファイル名が入力されていません。"
Exit Sub

End If

Dim ブック As Workbook
Dim Flag As Boolean

For Each ブック In Workbooks '検索したファイルが開いているか調べます。

If ブック.name = name & ".xlsx" Then Flag = True

Next ブック

If Flag = True Then '検索したファイルが開いていた場合の処理。

MsgBox "「" & name & "」" & "のファイルは既に開いているので最前面に表示します。"

Workbooks(name & ".xlsx").Activate '開いていたファイルを最前面に表示します。

Exit Sub

Else '検索したファイルが開いていない場合はファイルを開きます。

If Dir(ThisWorkbook.Path & "\フォルダ\" & name & ".xlsx") <> "" Then 'ファイルがフォルダ内にあるか調べます。

Workbooks.Open Filename:=ThisWorkbook.Path & "\フォルダ\" & name & ".xlsx" 'ファイルを開きます。

Else 'ファイルがフォルダ内に無いときはメッセージを表示します。

MsgBox "ファイルはフォルダ内にありません。"

End If

End If

End Sub

拡張子「xlsx」の部分を変えれば他のファイルも検索できるので試してみてください。

ThisWorkbook.Pathでファイルの保存場所を自動取得しているのでマクロ実行するブック(ファイル検索.xlsm)とファイルを検索する📁フォルダは同じフォルダ内に保存します。

インプットボックスの表示方法

エクセルのSheet1を表示して「開発タブ」 →「マクロの表示」ボタン → マクロ名を選択 → [実行] ボタンを押すとインプットボックスが表示されます。

ファイルの検索

検索するファイル名をテキストボックスに入力してOKボタンを押すとファイルが検索できます、検索されたファイルがフォルダ内にあったときは最前面に表示されます。

コメント