[[20190101102221]] 『VBAにてファイル検索してセルに表示』(椿) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『VBAにてファイル検索してセルに表示』(椿)

VBAにてセルA1の文字列をファイル名としてサーバーAを検索してヒットしたファイルをセルB5へ表示してハイパーリンクをつけたいのです
この検索が5種(A1→B5 A3→B6・・・・・・)フォルダーも別フォルダーなのですが
全てをオープンさせないで検索結果を一覧にして、リアルタイムで欲しいファイルをクリックで開きたいのです

私はマクロ初心者で大変申し訳ないのですが、移動した部署で
もっとexcelでやりたい事が沢山ありますので
ここを利用させて頂き勉強したいと思います

御指導、御鞭撻の程宜しくお願い致します

< 使用 Excel:Excel2013、使用 OS:Windows10 >


考え方を、
(1)指定されたフォルダにある全ファイルを検索して
(2)ファイル名に「セルA1の文字列」が含まれていたら
(3)そのファイル名をB5へ書き込んで
(4)B5セルに「見つかったファイルのフルパス」でハイパーリンクを設定
と切り分けてみてはどうでしょうか

なお、ファイルの検索、書き出し、ハイパーリンクの設定、いずれもファイルを開く必要はなさそうです。

(1)〜(4)の手段いずれもわからないということであれば、ファイルを片っ端から探す方法から説明する必要がでてくるので、↓をごらんください。
http://officetanaka.net/excel/vba/file/file07.htm

(もこな2) 2019/01/01(火) 16:23


まず、ご自分ではどこまでできているのですか?
 
リンク先を特定する際、以下の点を明確にしてもらえますか?
>検索結果を一覧にして
その趣旨を説明してください。
・文字列を含むファイル名をすべて(複数のフォルダにまたがるのか)表示したいのか、
・ファイル名が色々なフォルダにあるので、それらを一覧にしたいのか。
 
また、GetOpenFileNameを利用する方法で、対象のファイルを特定することはできますか?
 
# "強力な回答者"ではなく恐縮ですが、コメントします。

(γ) 2019/01/01(火) 18:26


コメントありがとうございます
返信のコメントも上手く書けるか不安なくらいなのですが
ややこしいな〜と思わせしまいましたら申し訳ありません
検索する最下層フォルダーは5種全て別で固定されています。1つの検索フォルダーから抽出するのは1つのみで
文字列がヒットしたファイル1つを表示出来ればと思います
5種目表示してから必要なファイル2つ〜4つを選択オープンさせたいのです
検索したものを全てfileopenさせれば楽と思われるかと思いますが
ファイルの見間違いを防ぐ為にあえて確認してクリック、オープンとする考えです
見当違いのコメントになりましたら申し訳ありません
(椿) 2019/01/01(火) 19:59

Explorerでファイルを探して、そのフルパスをシートに持ってくる作業は
手でやった方が早くないですか?
いくつあるのか知りませんが、それは一回限りの作業ですよね。
(ハイパーリンクをクリックするのは何度もするでしょうけど。)
 
どうしてもということなら、
http://officetanaka.net/excel/vba/tips/tips36.htm
の後半部分を参考にして下さい。
 
あとは、HyperLink関数でリンクを張ればよいだけなので、簡単な操作で可能です。
(γ) 2019/01/01(火) 21:25

 > 文字列がヒットしたファイル1つを表示出来ればと思います 
 > 5種目表示してから必要なファイル2つ〜4つを選択オープンさせたいのです 
 > 検索したものを全てfileopenさせれば楽と思われるかと思いますが 
 > ファイルの見間違いを防ぐ為にあえて確認してクリック、オープンとする考えです 

 ファイル1つを表示できればといいつつ、
 必要なファイルを2つ〜4つを選択オープンしたい、と矛盾していませんか?。

 その2つ〜4つはどういう条件で抽出するのか不明です。
 もし、コードの提示を所望されているとしたら無理な注文です。

 また、ファイル選択には判断が入ることのようなので、
 エクスプローラー上で検索機能を使って、候補となるファイルを表示させ
 必要ならそのファイルを開いて中身を検証するという手作業をすればよいのでは?

 あなたが作ろうとしているもの(リンクさせたいファイルの確定部分)は、
 エクスプローラーに既に実現されていることではないでしょうか。

 私はここまでとします。

(γ) 2019/01/02(水) 07:01


意図がうまく伝わらず、申し訳ありませんでした
ありがとうございました
(椿) 2019/01/02(水) 09:45

>VBAにてセルA1の文字列をファイル名としてサーバーAを検索してヒットしたファイルをセルB5へ表示してハイパーリンクをつけたいのです

この作業をを具体例をあげて、説明できませんか。
A1に入る文字列
検索方法は完全一致?拡張子も含む?
検索場所
B5の表示結果

(マナ) 2019/01/02(水) 10:38


ありがとうこざいます
@=アルファベット #=数字 ファイルはexcel (拡張子は複数) 検索場所は本来は社内サーバーですがC:とします
A1とA2は可変(作業者の手入力)
A1→##@###@@
A2→##@###
ファイル名はA1スペースA2
検索1 A1の右から5文字を最下層のフォルダー名としてA2の文字列一致(一つ上のフォルダーでA2検索でもいいのですがファイル数が多い為、出来れば最下層まで絞り込みたい)
検索2 C:部品よりファイル名完全一致
検索3 C:図面よりA2の上3つが一致するフォルダーの検索
各検索結果は複数にならず1つのexcelファイルや最下層のフォルダーとなります
表示はファイル名やフォルダー名を表示して直接クリックでのファイルやフォルダオープンかボタン設置してfileopenマクロの登録(出来ればボタン)
ファイルの用途が検索したファイル全て必要な時、1つだけなど作業条件がリアルタイムで変わるので必要なものだけオープンさせたい

伝わりますでしょうか。難しいですかね

(椿) 2019/01/02(水) 12:35


>伝わりますでしょうか。

ルールだけでなく、具体例があると、誤解がなく伝わるかと思います。

(マナ) 2019/01/02(水) 12:51


>完全一致

完全一致で、フォルダも決まっているのに、
そもそも検索する必要があるのでしょうか。

↑そう思ってしまうくらい、全然理解できていません。
なので、具体例をお願いします。

(マナ) 2019/01/02(水) 13:00


説明が下手で申し訳ありません。
(椿) 2019/01/02(水) 13:42

具体例がいただけないようですので
わたしも、ここまでとします。

(マナ) 2019/01/02(水) 14:32


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.