こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

エクセルで「特定の文字を含むファイルへのリンク」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」を含むファイルが検索結果として表示されるといった方法はあるでしょうか?

面倒な件ではありますが、ご教授頂ければ幸いです。

投稿日時 - 2008-11-15 18:29:15

QNo.4480927

すぐに回答ほしいです

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(1)

ANo.1

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を実行します。
試してみてください。

投稿日時 - 2008-11-15 19:18:54

あなたにオススメの質問