• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:セルをダブルクリックすると、不特定のフォルダ内にある、セルの値を含む名前のファイルが開くマクロを教えて下さい。)

Excel VBAでセルの値と一致しないファイルを開くマクロの作成方法

このQ&Aのポイント
  • Excel VBAを使用して、セルの値と完全に一致しないファイルを自動的に開く方法を教えてください。
  • 特定のフォルダ内にあるファイルの中から、セルの値で始まるファイルを見つけて開くマクロを作成したいです。
  • セルをダブルクリックすると、セルの値とは一致しないファイルを開く方法について教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.1

>ファイル名が、セルの値と完全には一致していないファイルを自動的に開く 部分一致しているBookを全て開くと言う事でしょうか?

lily999
質問者

補足

拝見してくださってありがとうございます。 はい。 部分一致しているBookを全て開きたいです。 ファイル名の一番最後が、修正があった場合はRev2,REV3,(rev4) となっていたりして規則性がなく、本当は一番最新のファイルのみ開きたいのですが、そこまで高望みはしていないのです。 よい方法ありましたらどうかよろしくお願いします。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (2)

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.3

質問者は、やりたいことだけ書いているが この質問に必要なスキルは、どんなものが必要か考えているのかな。 要素に分解すること。 (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)
回答No.2

私の環境で作ったそのままですが。 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 ご参考になれば。

lily999
質問者

お礼

n-junさんが記述して下さったサンプルを参考にして いろいろやってみます。 有り難うございました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • Excel2007 セルをダブルクリック

    お願います。 顧客管理ファイルの顧客シートの顧客名セルをダブルクリックすると 見積書ファイルが開いてダブルクリックした顧客名セルの内容を提出先顧客名セルへ転記したい。 見積書(テンプレート)の見積書シート 出来れば「○○○株式会社」→「○○○株式会社 御中」で貼り付けしたいです。 Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) Worksheets("顧客シート").Range(ActiveCell).Copy Workbooks.Open "\C\見積書\2012年度\見積書(テンプレート).xls" Workbooks("見積書(テンプレート).xls").Worksheets("見積書").Range("a4").PasteSpecial End Sub こんなん書いてみましたがどうも上手くいきません・・・ ご指導のほどお願いします。

  • エクセル(マクロ) 特定セルのファイル間コピペ

    マクロで下記内容の処理を行いたいと思っております。 どのようなコードにすればよいかご教授よろしくお願い致します。 1.A.xlsを開く 2.B.xlsを開く 3.B.xlsの特定セルの値をコピーする。(特定セルを仮にB4、C7、D9とする) 4.A.xlsのC列にあるファイル名リストから「B.xls」というファイル名の入ったセルを検索する。 5.仮に5行目に「B.xls」というファイル名があれば、同じ行にある特定列 (行は固定で、例えばE5、F5、G5とする)に3.でコピーしたB4、C7、D9の値を張り付ける。 ※B4はE列、C7はF列、D9はG列に対応するものとする 6.B.xlsを閉じる 7.C.xlsを開く 8.C.xlsの特定セルの値をコピーする。(特定セルはB.xlsと同じB4、C7、D9) 9.A.xlsのC列にあるファイル名リストから「C.xls」というファイル名の入ったセルを検索する。 10.仮に7行目に「C.xls」というファイル名があれば、同じ行にある特定列 (行は固定で、例えばE7、F7、G7とする)に8.でコピーしたB4、C7、D9の値を張り付ける。 ※B4はE列、C7はF列、D9はG列に対応するものとする 11.C.xlsを閉じる 12.D.xlsを開く 以下、同じ処理を繰り返す。

  • VBAで、excelファイルのマクロを実行したら、特定のフォルダのファ

    VBAで、excelファイルのマクロを実行したら、特定のフォルダのファイルの特定セルを確認し、その結果を反映する、というマクロを組みたいと思っています。 具体的には下記のマクロを組みたいと思っています。 ------------------------------------------------------ (1)マクロを組むファイル【worksheet】にてマクロを実行する (2)特定のフォルダのファイルのA1、A2、A3、A4の全てに”OK”という文字が入っているかを確認 ・C:\excel\1番\kakunin_1.xls にあるkakunin.xlsの、A1セルに”OK”という文字が入っていたら次はA2、A3、A4の順序で 確認する。 ・このとき、A1にOKと入っていて、A2には入っていなかった場合は、A2という文字を、【worksheet】のB1セルに結果を表示する ようにする。 ・特定のフォルダの構成は下記 C:\excel\1番\kakunin_1.xls |--\2番\kakunin_2.xls |--\3番\kakunin_3.xls ・上記の処理を、1番フォルダの【kakunin_1.xls】で実行し、【worksheet】のB1セルに結果を表示。 2番フォルダの【kakunin_2.xls】で実行し、【worksheet】のB2セルに結果を表示。 3番フォルダの【kakunin_3.xls】で実行し、【worksheet】のB3セルに結果を表示。 ------------------------------------------------------ VBAどころかプログラミング自体が初めてなので、例えば引数が何かも一々考えて1文ずつ読み込まなければいけない状態です。。 どなたかこの無知な自分に力を貸して頂けないでしょうか?

  • 選択したセルでダブルクリックをするとエクセルマクロによりそのセルがコピ

    選択したセルでダブルクリックをするとエクセルマクロによりそのセルがコピーされて、メモ帳等のテキストエディタで貼りつけるとその値が出るようにしたいと思っています。 ほとんどイメージ通りにできたのですが、テキストエディタで貼りつけた値に加えて改行が入ってしまいます。 どのようにすると改行コードを消せますか?できないのなら、どのようにすればエクセルで任意のセルをダブルクリックをしたときに改行コードのないようにコピーできますか? 参考に現在のVBEで記述したコードを示します。 ----------------------------- Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, _ Cancel As Boolean) Target.Interior.ColorIndex = 37 Cancel = True Target.Copy End Sub

  • ブックを開かずに、フォルダ内にある複数ブックの、特定セルの値を抽出した

    ブックを開かずに、フォルダ内にある複数ブックの、特定セルの値を抽出したいのですが、やり方をご存じの方がいらっしゃったら教えてください。 フォルダ内には150個ほどエクセルファイルがあり、中身のシート名・フォーマットは同じなのですが、すべてファイル名が違います。 ファイルを開くことなく、これらのファイルの特定のシートの特定のセルにある値を、全て1枚の表にまとめることは可能でしょうか? フォルダ名 →"AGENDA_RIREKI" 参照したいファイル名 →ファイルによって異なる "#1111 AAA.xls"など 参照したいシート名→ "AGENDA" 参照したいセル→ "A7" と "E20~E70(E列のみ) データをまとめたいファイル名→ "AGENDA_matome.xls" データをまとめる時の形↓ (A列)          (B列)            (C列)        (D列) ファイル1のA7の値 ファイル1のE20の値  ファイル2のA7の値  ファイル2のE20の値                     E21の値                    E21の値                     ・                     ・                     ・     VBAは初心者です。。できればコードをそのまま拝借したいです。 お知恵を貸してください。よろしくお願いします。

  • エクセルVBA ダブルクリックした左隣の値を返す方法

    いつもお世話になっております。 あるワークシートにおいて、 Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, _ Cancel As Boolean) If ActiveCell.Column = 7 Then Target.Value = "希望" End If End Sub というマクロを記述することができました。 今度は、 G列のどこかのセルをダブルクリックすると、 同じ行のE列の値が、 ダブルクリックしたセルに入るようにしたいのです。 どのような記述をすればよいのか ご教示ください。

  • エクセルでフォルダまたはファイルを開くマクロですが、どのように改良すれ

    エクセルでフォルダまたはファイルを開くマクロですが、どのように改良すればよろしいでしょうか? 下記マクロは、エクセルシートのJ列のあるセルをダブルクリックすると、そのセルに記入された文字列を検索して、該当のフォルダまたは、写真が開きます。(エクセルファイルと写真は同フォルダに保存している場合のみ有効) 困っていることは、J列のセルと該当フォルダまたは、写真ファイルをリンクさせたいのですが、文字列が全て一致している時のみしか開かないことです。 D<デジカメ<商品名フォルダ<写真ファイル 例えば セルJ3の文字列がABCEで、フォルダ名またはファイル名がABCDEFであった場合、文字列ABCEを含む条件で、フォルダ名またはファイル名ABCDEFを開くように改良したいのですが、 また、エクセルファイルと写真ファイルの保存場所は、全く違うフォルダにしたいのですが、 エクセルファイルと写真ファイルは、別フォルダの場合、どのように検索先フォルダのパスを入れたら良いのでしょうか? マクロに詳しい方ご教授下さい。よろしくお願い致します。 Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) Dim myPath As String If Target.Cells(1, 1).Column <> 10 Then Exit Sub Cancel = True myPath = ThisWorkbook.Path & "\" & Target.Cells(1, 1).Text If Dir(myPath, vbDirectory) <> "" Then Shell "explorer.exe /e,/root," & myPath, vbNormalFocus Exit Sub End If myPath = Replace(LCase(myPath), ".jpg", "\" & Target.Cells(1, 1).Text) If Dir(myPath, vbNormal) <> "" Then Shell "rundll32.exe shimgvw.dll,ImageView_Fullscreen " & myPath, vbNormalFocus End If End Sub

  • マクロで特定のフォルダの中から任意のフォルダを開きたい

    マクロで特定のフォルダの中から、任意のフォルダを開きたいのです。 または、特定のフォルダの中から最新のブックを開きたいのですが このような方法ご存知の方ご教示いただけませんでしょうか^^; 以下のコードは、似たような方法がないか検索して 見つけたマクロなのですが、この方法ですと 特定のフォルダを指定して開くことはできますが 任意のフォルダを一発で開くということは難しいようです。 Private Sub Worksheet_BeforeDoubleClick() Cancel = True Const dataDir As String = "C:\テスト\保存データ\" Dim dataFilePath As String dataFilePath = dataDir & Target.Value & ".xls" Dim fso As Object Set fso = CreateObject("Scripting.FileSystemObject") If fso.FileExists(dataFilePath) Then Workbooks.Open (dataFilePath) End If 保存データというフォルダに番号がフォルダ名のフォルダが複数入っています。 例) 100 101 102 103 104 と、いった具合です。 保存フォルダの中の104(任意のフォルダ)を開くマクロまたは番号のフォルダは関係なく 保存フォルダの中の最新ブックを開くことができるような方法はないでしょうか? 開きたいブックというのは、最新ブックのみですので、この例の場合 104が最新のフォルダというわけではなく、番号のフォルダ自体は 104以降もあり、最新ファイルが104にある場合は105以降のフォルダは 空の状態です。 分かりにくい説明ではございますが、よろしくお願いします^^;

  • とあるシートの複数のセルの範囲の値と、とあるフォル

    とあるシートの複数のセルの範囲の値と、とあるフォルダにあるファイル名が部分一致していたら、そのファイルを別の指定のフォルダに入れるVBAを大まかでいいので教えてください。 (1)アクティブになっているブック内にあるシートのとあるセル範囲のそれぞれの値(例:1111、2222、3333...) (2)開いていないフォルダ内にあるファイル名(例:1111-H8-32.xlsなど) が部分一致したとき、そのファイルを別のフォルダ内に移動させたいのですが、いまいちわかりません、教えていただけないでしょうか?

  • 指定したセルでファイル名を保存するマクロについて

    マクロ初心者です。 A1セルの文字をファイル名にして保存する方法を知りましたが、A1セルとB1セルの文字をファイル名にして保存したい場合、どのようにすれば良いか分かりません。 A1セルに企業コード、B1セルに企業名です。 ファイル名を「請求書(13579いろは株式会社様)」としたいのです。 実際のマクロを一部抜粋しますが、下記の場合はファイル名は 「請求書(13579様).xls」となります。 Dim WS As Worksheet Dim fname As String fname = "C:\保存先\" & ("請求書(") & WS.Range("a1").Value & ("様)") & ".xls" どなたか教えて下さい。 どうぞよろしくお願い致します。

専門家に質問してみよう