• ベストアンサー

Excel2003 マクロ(VBA) どこにあるか分からないフォルダAのワークブックAを開く

imogasiの回答

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

フォルダやドライブが違えば、同名のファイル名が許されるのではないでしたっけ。 そうだとすれば(質問のケースでは通常ではつけないような、特殊なファイル名をつけているとは思いますが)あるフォルダに見つかったからといって、目指すものでない可能性が万に一起こりませんか。システムではあまり質問のようなことはしないことではないですか。(<=今はフォルダAがCドライブにありますが、明日はデスクトップ上にあったり、フォルダBの中に入っていたりするかもしれません。という状況を許すというのが、どういう必要性なのか) ーー こういう類の問題は VBAよりも、VBScriptのFSOの方が、ふさわしくないかと、本をざっと 見てみましたが、ファイル名を中心に、どのドライブやフォルダにあるというのを、一発で検索してくれるものはなさそうです。 フルパスを指定してFileExists(パス)というので限定のパスについて、調べるか、しらみつぶし式に調べるかではないですか。 FSOの解説を調べれば、「全てのドライブを参照したい」からはじまる、「コレクションのFor Eachが使えるもの」の解説が出てきますので、使えないか見てください。 http://www.bcap.co.jp/hanafusa/VBHLP/FSO01.htm のFileSystemObject オブジェクトの箇所など多数 ただしツリー構造のもの(ファイルシステム)を探索する(バックトラック法に類したことなど)などなれないと難しいかも。 小生にとって、あまり日常的に取り扱っている分野でないので、参考程度にしてください。   

kenta-s
質問者

お礼

難しい用語が多く、どのコードをどこで使えば良いかまだ理解できません。 それがわかるようになれば教えてくださったリンク先が十分参考になると思います。精進します。 ありがとうございました。

関連するQ&A

  • エクセルのマクロで、他のブックを開くときについて

    マクロの記録を利用して、他のブックを開くことをしました。 マクロのモジュールを見たら、 ChDir "C:\Documents and Settings\*****\デスクトップ" Workbooks.Open Filename:="C:\Documents and Settings\*****\デスクトップ\○○.xls" となっていました。 1行目の「Chdir」というのはなんでしょう? また、2行目では開きたいブックをパスを使ってあらわしています。 今マクロを動かしているブックと同じフォルダ内にあるブックや そのフォルダから見て上位のフォルダとか、「c:」から始まる パスを使わないような書き方はあるのでしょうか? ご助言お願いします。

  • VBA Workbooks.open

    ブックを開くコマンド × Workbooks("filename.xls").open ○ Workbooks.open filename:="filename.xls" 何故下なのですか?ワークブックコレクションの中から特定のブックを指定し開くなら、上の構文にした方がワークシートコレクション等と構文表現を統一出来ます。 現にブックを閉じるコマンドは Workbooks("filename.xls").close です。何故ブックを開くコマンドだけ別表現なのですか?

  • Excelでファイルを開くをマクロで行いたい

    マクロ初心者です "ファイルを開く"をマクロの記録で記録させると ChDir "C:\Documents and Settings\○○\△△\※※" Workbooks.Open Filename:= _ "C:\Documents and Settings\○○\△△\※※¥LotLog20070131.csv" Windows("●●●.xls").Activate End Sub と記録されます この中で 開きたいファイルネ-ム(上記ならばLotLog20070131.csv)を "●●●.xls"の どこかのセルを参照に開きたいのですが どうすれば宜しいのでしょうか?

  • ワークブックに名前をつけて保存するマクロ

    教えてください!! ワークブックで名前をつけて保存するときのマクロなんですが、 自動記録すると下記のように記述されています。 ActiveWorkbook.SaveAs Filename:="C:\○○○\○○○\□□□□□.xls" この□□□□□の部分はインプットボックスを表示させたいのですが、 こういうマクロを組むことはできますか?

  • Excel VBA

    Excel VBAを勉強中の者です。 複数のワークブックを開いているため、ワークブックから指定していってセルを選択したいと思い下記のようなコードにしてみたのですができませんでした。 Workbooks(“C:\フォルダ\ワークブック.xls”).Worksheets(“C”).Range(“A1”).Select このようなコードは有り得ないのでしょうか? または、ワークブックを開いて、ワークシートをアクティブにして、セルを選択するというように、ひとつひとつ選択していくのではなく、一文でワークブックからセルまで指定する他の方法はありますでしょうか? 教えてください。よろしくお願いします。

  • ■VBAマクロでワークブックAにワークブックBの集計をしたい。

    ■VBAマクロでワークブックAにワークブックBの集計をしたい。 ただし、ワークブックBは同じ番号で何個もあり、日付も並んでいません。 またワークブックAにあってBにない番号、また逆もあります。 それを日付が近いものから3つまで表示。 例) ワークブックA (sheet1)  番号 メモA1  メモA2 メモB1  メモB2 メモC1 メモC3 11111 2010/7/7  ccc 2010/5/5 ddd 2010/3/3 bbb 22222 2010/10/10 fff 2010/2/2 eee 35851 2010/12/12 ggg 54321 ワークブックB (sheet1) 番号  日付  メモ 11111 2009/1/1 aaa 11111 2010/3/3 bbb 11111 2010/7/7 ccc 11111 2010/5/5 ddd 22222 2010/2/2 eee 23568 2010/4/4 hhh 22222 2010/10/10 fff 35851 2010/12/12 ggg ※ワークブックAは最初項目と番号以外メモ部分は白紙です。例)は実行後の結果です。 質問で足りない部分ありましたら補足を入れますのでよろしくお願い致しますm(__)m

  • エクセルVBAでの呼出操作をマクロ化するには?

    エクセルVBAでの呼出操作をマクロ化するには? エクセル2000です。宜しくお願いします。 VBAで、ファイルを呼び出したいのですが、Workbooks.openの書き方が良く分かりません。 呼び出すファイル名は決まっていなくて、フォルダ名は固定です。 エクセルの操作で言うと、ファイルを開くを押して、フォルダを選ぶとこまでをマクロかしたいのですが。 例えば、ドライブDの「作業用」フォルダを開きたい場合は、どう記述すれば宜しいでしょうか? 基礎的な部分でお恥ずかしいのですが、以下で実行しても動かんのです。 ChDir "D:\作業用" Workbooks.OpenText Filename:= "D:\作業用\*.*"

  • Excel VBAで他のワークブックからのコピぺの仕方について

    Excel VBAで開いている全てのワークブックから決められたセルの中身とそのシート名をそれぞれ決められた一つのワークブックにコピぺする マクロを作りたいのですが、どうやって作って良いのかが分かりません。 例えば、 Sub Mac() For i = 1 To 100 Workbooks("Book1.xls").Worksheets("sheet1").Range(Cells(2108, 2), Cells(3108, 2)).Cut Destination:=Workbooks("Book1.xls").Worksheets("sheet1").Cells(13, 2) End Sub みたいにすれば良いと思うのですが、開いている全てのファイルからのコピぺってどうやって記述するのでしょうか? 何卒よろしくお願い致します。

  • エクセル2000VBAでファイルを操作したい

    いつもお世話になっています。 エクセルVBAで別のワークブックを参照したいので workbooks.open Filename:="C:my documents\***.xls" とすると、そのオープンするワークブックのTisWorkbookのWorkbook_Open()で実行している(.show)メニュー(ユーザーフォーム)が開いてしまいます。 このとき、Workbook_Open()を実行させないでワークブックを開く方法って、 なにかありますか? Shiftを押しながらファイルを開くとき、実行されませんよね?それをVBAでできるのですか? よろしくお願いします。

  • エクセルマクロでマクロをアクティブにしたくない

    エクセルのマクロをひとつの「マクロA」という名前で、データーファイルからセルに入っている内容などを呼び出しながらまくろAのシートにデーターを貼り付けながら作業をしています。 Workbooks.Open Filename:= _ "C:\Documents and Settings\owner\My Documents\マクロ.xls" Application.Run "マクロ.xls!マクロ" と記載すると、マクロXLSがアクティブになってしまいます。 その為記載に'ActiveWindow.WindowState = xlMinimized と入れたりするのですが、アクティブになるシートがマクロ以外にうまくいかないことがあるのです。 データーシートは、毎回データーが変わる関係で、DATA.xlsがAのときやBのときが発生します。