- 締切済み
エクセルで「特定の文字を含むファイルへのリンク」or「特定の文字を含むファイルの検索の実行」
セル内に「CC569545」や「AA895266」といった文字列があります。 この文字列を含む「ASD_CC569545_M45.pdf」や「EDR_AA895266_kkkk.pdf」といった ファイルが、「C:\Temp」というフォルダにあるのですが、 このファイルに「自動的」 にリンクを張る方法はあるのでしょうか? 例えば、セルAに「CC569545」と入力すると、「C:\Temp」内の複数のファイルの中の 「CC569545」という文字列を含む「ASD_CC569545_M45.pdf」に自動的にリンクが設定されて、 これをクリックすると「ASD_CC569545_M45.pdf」が開くような方法を探しています。 フォルダ内には「CC569545」の文字列を含むファイルが複数存在することも考えられます。 もしくは、セルの「CC569545」をクリックすると、ウィンドウズの検索が実行されて、検索結果として「C:\Temp」の「CC569545」を含むファイルが検索結果として表示されるといった方法はあるでしょうか? 面倒な件ではありますが、ご教授頂ければ幸いです。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- hallo-2007
- ベストアンサー率41% (888/2115)
VBAの力が必要になりますが、大丈夫でしょうか。 http://oshiete1.goo.ne.jp/qa4478102.html の方のスレのコードを利用させていただきました。 新しいブックを作成して 検索したいフォルダに一度保存してください。 A列に検索する文字を入れておきます。 A CC569545 AA895266 ・・・ ツール=>マクロ=>VBエディター開いて 挿入=>標準モジュール モジュールに以下をコピィします。 Sub macro1() ThisWorkbook.Sheets(1).Range("B2") = "ファイル名" ThisWorkbook.Sheets(1).Range("C2") = "ファイル種別" ThisWorkbook.Sheets(1).Range("D2") = "最終更新日" ThisWorkbook.Sheets(1).Range("E2") = "リンク" Target = InputBox("ディレクトリ名を入力", "ディレクトリの指定", ThisWorkbook.Path) Set FS = CreateObject("Scripting.FileSystemObject") Set Fol = FS.GetFolder(Target) Set Fil = Fol.Files ThisWorkbook.Sheets(1).Rows("3:65536").ClearContents i = 3 For j = 1 To Range("A65536").End(xlUp).Row For Each fx In Fil If fx.Name Like "*" & Cells(j, 1).Value & "*" Then 'ファイル名の書き出し ThisWorkbook.Sheets(1).Cells(i, 2) = fx.Name ThisWorkbook.Sheets(1).Cells(i, 6) = fx.Path ThisWorkbook.Sheets(1).Cells(i, 5).FormulaR1C1 = "=HYPERLINK(RC[1],RC[-3])" 'ファイル種別 ThisWorkbook.Sheets(1).Cells(i, 3) = fx.Type '最終更新日 ThisWorkbook.Sheets(1).Cells(i, 4) = fx.DateLastModified i = i + 1 End If Next Next j End Sub VBエディター閉じて、マクロを実行 ツール=>マクロ macro1を実行します。 試してみてください。