セルにファイル名を入力してマクロの実行ボタンを押すとファイルの検索ができるVBAのプログラムを紹介します。
Sheet1のセルA1に検索したいファイル名を入力して「開発タブ」 →「マクロの表示」ボタン → マクロ名を選択 → [実行] ボタンを押すとファイルの検索ができるプログラムを作成します。
VBEを起動して「挿入」→「標準モジュール」を選択して標準モジュールを作成します、作成した標準モジュールのModule1に下のコードを貼り付けます。
Sub ファイルの検索()
Dim name As String
name = Range("A1").Value 'A1セル値(ファイル名)を変数nameに格納します。
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
マクロ実行するブック(ファイル検索.xlsm)とファイルを検索する📁フォルダは同じフォルダ内にしてThisWorkbook.Pathでファイルの保存場所を自動取得しています。
エクセルのSheet1を表示してセルA1に検索したいファイル名を入力します、そして「開発タブ」 →「マクロの表示」ボタン → マクロ名を選択 → [実行] ボタンを押すと検索されたファイルが最前面に表示されます。
コメント