• 締切済み

エクセルで「特定の文字を含むファイルへのリンク」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」を含むファイルが検索結果として表示されるといった方法はあるでしょうか? 面倒な件ではありますが、ご教授頂ければ幸いです。

みんなの回答

  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.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を実行します。 試してみてください。

関連するQ&A

  • エクセルファイルのセル値に特定文字列を追加して別ファイルに

    VB2008でのプログラム方法についての相談です。以下の手順を実現したいです。 (1)エクセルファイルのあるセル中にあるデータを取得 例)A1セルの値"AA"、A2セルの値"BB"、A3セルの値"CC"..... (2)決まりきった特定文字列と(1)の値を結合 例)くっつけたい文字列 " "+AA ⇒ くっつけたい文字列"AA" くっつけたい文字列 " "+BB ⇒ くっつけたい文字列"BB" くっつけたい文字列 " "+CC ⇒ くっつけたい文字列"CC" (3)テキストファイルを生成 ○○○.txt 例) くっつけたい文字列"AA" くっつけたい文字列"BB" くっつけたい文字列"CC"

  • 配列内の文字列検索をしたい

    お世話になっております、またjavascriptで詰まってしました。現在作ってるソースは以下のイメージです。 var temp= hensuu; var list = "aa,bb,cc"; //tempがaa,bb,ccの文字を含んでいたら処理 if(list.indexOf(temp)!=-1){ //ここで何番目の要素か知りたい } という処理をしているのですがif(list.indexOf(temp)!=-1)の中で「文字列(list)に存在する」だけでなく,「区切りの何番目の要素か」も知りたいんですがそういう便利な関数か方法はあるでしょうか? list.indexOf(temp)の返す値は「文字列が見つかった場所」なのでリストの順番ではないんですよね…。 for文でひとつひとつ回すしか方法は無いのでしょうか??LIST(もしくは配列)内検索関数みたいなのがあればナイスなんですが…。分かる方、ご教授頂けたらこれ幸いです。

  • エクセルでファイルを開かずに文字を検索し、行を抽出したい

    ひとつのフォルダの中にファイルが複数あります。これらのファイルを開かずに文字列を検索し、検索対象の文字がある行をまどめてひとつのファイルに抽出したいです。 例:Aフォルダ内にファイル1、ファイル2、ファイル3、、、と複数のファイルがある。ファイルのフォーマットはすべて同じでデータのみが異なる。ファイルにはシートは一つのみ。 ファイルのイメージは      A    B    C     D  1行目 名称   価格   味    評価 ←全ファイル共通 2行目 いちご  100円  おいしい   A 3行目 りんご  200円  まずい    C ・ ・ ・ これらのファイルから、例えば「いちご」という文字が含まれているセルがある行を抽出して一覧を作りたいです。 もし可能であれば、検索条件として、 一行に 「いちご」かつ「A」を含む や「いちご」または「おいしい」を含む など の絞込みができる機能があれば助かります。 マクロは初心者のため、自分でこのようなものを作ることができません。どうぞお知恵をおかしください。よろしくお願いいたします。

  • ファイルの内容を検索を行うVBS

    エクセルのA列に検索ワードがそれぞれ1つずつ入っています。特定のフォルダ内にある全HTMLファイルの中身を検索し、各検索ワードが1つでも含まれていた場合、そのファイル名をエクセルのB列の対応する行に記入していくというVBSを作成する事は可能でしょうか? 例えば 検索フォルダ:C:\\aa ___ A ______ B _________ 1__あい__ h.html,g.html,s.html 2__うえ__ i.html 3__おか__ j.html,e.html 4__きく__ 該当なし 5__けこ__ :___:    : 上の2行目の例だと、「C:\\aa」フォルダの中にある全HTMLファイルのうち「うえ」という文字列が含まれているファイル名がi.HTMLということになります。 つまり、A列を読み込んでB列に自動記入していくVBSです。 VBS初心者なもので、どなたかお分かりになる方がいらっしゃいましたら是非教えて頂きたいです。よろしくお願いします。

  • 【エクセル】結合した文字列の検索について

    エクセルで、複数セルの文字列を「=A1&A2&A3&…」という感じで、B1セルに結合するとして、 例えばA2の文字列に「★」という文字が含まれているとします。 検索で「★」を指定した場合、A2のものは引っかかるのですが、B1の結合された文字列は引っかかりません。 B1セルの文字列も通常通り検索できるようにするには、B1セルでどのような処理をすれば良いのでしょうか。

  • セル内の文字列から特定の文字の有無を検索したい。

    セル内の文字列から特定の文字の有無を検索したい。 (A1)セルに、文章が書かれており、その中に、(B1)セルに入力した文字列が含まれているか調べて、有無を(C1)セルに1,0で表示する方法を教えて下さい。よろしくお願いいたします。

  • VBA 特定の文字を含む、複数ファイルから抽出

    はじめまして。 必要なデータが複数のファイルにまたがってバラバラに管理されており、必要なデータを取り出すために毎日苦労しています🥲ファイル毎に別担当が更新されているため統合される予定がなく途方にくれています。どなたかコード教えて下さい。切実。 【前提】 特定のフォルダ(階層はバラバラ) Excelファイルが30個前後 ファイルによっては複数のシートがある OSはWindows10 Office365 Excelです。 【検索方法】 メッセージボックスに検索したい文字列(例えば”AA-123“)と入力 できればワイルドカード文字も使いたいです。 【結果の表示】 第1希望 リンクとして表示 第2希望 ファイル名と行ごとコピー 第3希望 ファイル名とセル番地を表示 【複数のファイルがHITした場合の表示】 1件目をA1セルとA2セル 2件目を1行あけたA3セルとA4セル 3件目以降同様に、、、といった具合に全件を表示させたいです。 想定では多くて10件以下の見込です。 以上 難しいかもしれないのですが、どなたかお助けください。

  • エクセルの文字列の検索に関して

    また、エクセルに関しての質問です。 例えば  A B C D 1あ 1 2い 2 3う 3 4え 4 5お 5 6か 6 7き 7 8く 8 このような漢字で文字列が縦に入力されていて、  A B C D E 1あ 1   お 5 2い 2   う 3 3う 3 4え 4 5お 5 6か 6 7き 7 8く 8 このようにD列にある文字に対してA列にある文字で該当する文字を発見し横のBセルにある番号を取ってくるということがしたいです。 この場合だとD1は「お」なので、A列の上から見ていくとA5に「お」があるので、B5の数字「5」をEに入力といったような具合です。簡単なように見えますが、複数の文字列を横断的に検索することができません。 誰か詳しいお方お教え願います。

  • エクセルで他のファイルへのリンクが切れてしまう

    エクセル2016で表の品名一覧表の品名が入ったセルに別フォルダに入っている当該品の説明書(pdf)にリンクを張って品名セルのクリックで当該品のpdfファイルが参照できるようにしているのですが、かなりの頻度、確率でリンクが切れてしまいます。 NETで調べてみたら原因はエクセルのバグ、との情報もあるのですが何とか回避する方法は無いのでしょうか? また、この現象を回避するリンクの張り方があれば教えてください。

  • エクセルで文字検索。

    エクセルで文字検索。 エクセル2000です。 エクセル素人ですが、 基本情報シート(手記入)と伝票シート(参照記入)があります。 製造業をしておりますが、基本情報シート(手記入)を参照に伝票シート(雛形)を作り、その伝票を製造する機械(枚数は2~3枚必要)に貼り付ける分と出荷伝票とに分けて使いたいです。     基本情報シート 行  B列     C列 ・・・・・N列  3  注文番号    納入会社    納入機械名 4  20-100-01   AA社      ああ機 5  20-100-02   AA社      いい機 6   20-100-03   AA社      うう機 7  20-100-04   AA社      ええ機 8  20-100-05   AA社      おお機 9  20-200-01   CC社      かか機 10  20-200-02   CC社      くく機   伝票シート(出荷伝票と兼ねる)  行  B列    D列    E列     3         No.    20-100-01を記入(出荷する場合に記入)  4         No.    20-100-02を記入(出荷する場合に記入) 5         No.    20-100-03を記入(出荷する場合に記入)  6         No.    20-100-04を記入(出荷する場合に記入) ・  ・ ・  10         納入社名    AA社・・・・-01から-04のいずれでもAA社を表示。 ・ 12    B列 13  品名・規格 14  ああ機・・・(20-100-01に該当する項目) 15  いい機・・・(20-100-02に該当する項目) 16  うう機・・・(20-100-03に該当する項目) 17  ええ機・・・(20-100-04に該当する項目) 注文番号での納入社分けは20-100-○○○の-100の部分を変えてます。 伝票では、E列に記入する注文番号の20-100-01から20-100-04のいずれかを(1日で全てが出荷とは限らず、-01だけの場合や、-01、-03の場合もあり)記入してもE10セルにはAA社が記入出来るようにしたいです。尚、納入社名が違う場合は新たに伝票を作ります。(20-100-○○○と20-200-○○○とは別伝票にし、分けます。) 以前参考にさせていただいた関数でやってみましたが内容が適してないためか、-01を記入しないと E10にAA社が入りません。 よろしくご教授ください。 造業

専門家に質問してみよう