- ベストアンサー
Excel VBAでセルの値と一致しないファイルを開くマクロの作成方法
- Excel VBAを使用して、セルの値と完全に一致しないファイルを自動的に開く方法を教えてください。
- 特定のフォルダ内にあるファイルの中から、セルの値で始まるファイルを見つけて開くマクロを作成したいです。
- セルをダブルクリックすると、セルの値とは一致しないファイルを開く方法について教えてください。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
>ファイル名が、セルの値と完全には一致していないファイルを自動的に開く 部分一致しているBookを全て開くと言う事でしょうか?
その他の回答 (2)
- imogasi
- ベストアンサー率27% (4737/17069)
質問者は、やりたいことだけ書いているが この質問に必要なスキルは、どんなものが必要か考えているのかな。 要素に分解すること。 (1)あるフォルダにある、ファイル名を1つずつ取り出す。 (2)その1つ1つのファイル名(=ブック名)が、望む(名前)文字列を含むかどうかを調べる。 (3)(A)含んでいれば、ブックを開く (B)含んでいなければ次のファイル名のチェックに行く (4)最後にどういうときにファイル探索は終るのか。 こういう風に考えるのは、VBAコードを知らなくても経験を積むとわかる。質問者は経験が少なく、この質問も背伸び問題でしょう。 ーーー (1)(4)はWEB照会すれば記事が腐るほどあります。 1例は http://www.moug.net/tech/exvba/0060001.htm で 'Workbooks("Book1.xls").Activate と 'ChDir myPath をコメント化すること(とりあえず働か無くする) <--( )の部分は全て削除して 実行 シートにエクセルブック名の一覧が出る。 これで様子がつかめるでしょう。 この中でも myFName = Dir() と myFName = Dir("*.xls") が要点です ーー (2)はInstr関数を使います。 質問の場合、チェックしたいファイル名の型は複数あるようだから 繰り回して聞く。 フォルダは特定の1つらしいから、上記のChDir myPathのところを修正する。 判らなければ、その語句で(例 InstrやChDir)WEB照会すればよいのだ。 それの積み重ねで経験が増える。 丸投げの質問のフル回答を実行して、動きましたなんて回答者が多いが、心得違いです。
- n-jun
- ベストアンサー率33% (959/2873)
私の環境で作ったそのままですが。 Wドライブのaaa,bbb,cccフォルダにある123・・・.xlsと言うBookを 開いていくサンプルです。 Sub Test() Dim myPath As String Dim myFName As String Dim myFil As String Dim i As Integer Dim v As Variant myFil = "123" ' Target.Valueに置き換える ' 開いていきたいフォルダ名 For Each v In Array("aaa", "bbb", "ccc") myPath = "W:\" & v & "\" myFName = Dir(myPath & myFil & "*.xls") Do While myFName <> "" Workbooks.Open Filename:=myPath & myFName myFName = Dir() Loop Next End Sub ご参考になれば。
お礼
n-junさんが記述して下さったサンプルを参考にして いろいろやってみます。 有り難うございました。
補足
拝見してくださってありがとうございます。 はい。 部分一致しているBookを全て開きたいです。 ファイル名の一番最後が、修正があった場合はRev2,REV3,(rev4) となっていたりして規則性がなく、本当は一番最新のファイルのみ開きたいのですが、そこまで高望みはしていないのです。 よい方法ありましたらどうかよろしくお願いします。