• ベストアンサー

エクセルVBAで

ローカルディスクCのフォルダ内にあるエクセルブックのすべてのファイル名を取得するマクロを作りたいのですがご教授宜しくお願い致します。

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

  • ベストアンサー
  • papayuka
  • ベストアンサー率45% (1388/3066)
回答No.1
gunma1005
質問者

お礼

ご回答有難うございました。このHPとVBAのヘルプを参考にして やっと動作するようになりました。他の皆様にもお礼申し上げます。

その他の回答 (2)

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

FSOを使わない場合 Dirを使います。 #1のご回答で紹介されている方とと同じ方のものですが http://www.officetanaka.net/excel/vba/file/file07.htm の例を Sub Sample20() Dim buf As String, i As Long Dim Path As String Path = "C:\Documents and Settings\XXXX\My Documents" buf = Dir(Path & "\*.xls") Do While buf <> "" i = i + 1 Worksheets("Sheet1").Cells(i, 1) = buf buf = Dir() Loop End Sub と改造して、やってみてください。 Path=””の””の中は、自分のケースにあわせて修正してください。

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.2

Dir 関数を使ってはどうでしょうか 使い方は、ヘルプを見て下さい

関連するQ&A

  • エクセルのVBAについて

    エクセルのVBAについて教えて下さい。 エクセルのVBAでプログラムを組んでいるのですが、一つわからないことがあるのです。 マクロが実行(オープン)されるファイル名(ファイルパス)をVBAで取得するためにはどうすればいいでしょうか? たとえば、マクロが実行されるファイルがC:\テスト.xlsならば "C:\テスト.xls"を取得したいと考えています。 どなたかご教授お願い致します。 宜しくお願い致します。

  • EXCEL VBAで2つEXCELを起動したときのブック名取得の方法

    for each *** In workbooks・・・Nextで現在開いているexcelのブック名をすべて取得することができますが、2つめのexcelを起動し、そこで開いたブック名は取得することができません。 プロシージャは個人用マクロブックに記載しているのですが、複数起動したexcelのすべてのブック名を取得する方法をどなたかご存知の方いませんでしょうか? excel2007を使用しています。よろしくお願いします。

  • エクセルのVBAで特定のフォルダ内にあるファイル名称の一覧を取得できるような方法は?

    始めまして、ボスからの依頼ですが、わからなくて困っています。 ひとつのフォルダに複数のエクセルファイルを保存し、それぞれのファイル(ブック)に対して加工を施すマクロを実行したいと考えています。その際、特定のフォルダ内にあるファイル名称の一覧を取得するようなマクロがあれば、1回の実行ですべてのファイルを加工できるので、時間の短縮を図れると考えました。 そこで、そのようなことができるマクロ(マクロ単体ではなく、いくつかのマクロを組み合わせて取得する方法でも構いません)をご存知の方がいらっしゃいましたら教えていただけませんでしょうか。 よろしくお願いします。

  • 複数のExcelを1つのExcelに

    Excel.xlsの1シート目に、フィールドとデータが入っています。このExcelが担当者ごと複数存在します。 複数のExcelを1フォルダにまとめ、1行目はフィールド・あとは全てデータとして、1つのExcelブックの1シートへまとめることは可能でしょうか? フィールドは38列、行数はブックごと異なり、ブック名も担当者ごと異なります。 いろいろ調べたのですが、VBA初心者の為、VBAを貼り付けて実行してもうまくいきませんでした。 できれば、元ファイルは消さないよう、コピーのみ行いたいと思っています。 フォルダ名は C:\出庫依頼書 です。 どなたかご教授いただけませんでしょうか。

  • エクセルVBA 一覧にあるブックを順に印刷するには

    こんばんは。ブック名の一覧の中から指定したものを順に印刷をしていく方法を教えてください。 D10から下にブック名が書いてあります。 その横(C列)に“印刷”と入力してあるブックのシートすべてを順に印刷をしたいと思っています。 ただし、シート名に「保存」という名前を含んだものについては印刷対象から除きたいというわがままなものなのです。 ブックはすべてマクロ実行のファイルと同じフォルダの中にあります。 これ、可能でしょうか?よろしくお願いします。

  • シンクライアントでのVBAによるファイル保存

    ExcelのテンプレートファイルにVBAマクロを記述しています。 VBAにより新しいブックを開き、データを作り込んだ後、テンプレートファイルが置かれているフォルダに保存するマクロを作成しました。 リッチクライアント上では問題なく動くのですが、シンクライアント上で実行すると、  ActiveWorkbook.SaveAs Filename:='フルパスのファイル名'  ※フルパスのファイル名は、"C:\folder\file.xlsx"というような形式になっています。 のところでエラーになってしまいます。 パス付きのファイル名について、作法があるようでしたらお教えいただけますか。 よろしくお願い致します。

  • エクセル マクロについて

    エクセルのマクロについて教えてください。 下記のようなマクロを実行した場合 どのような条件でフォルダ内のファイルを オープンしていくのでしょうか。 ファイルの名前や更新時間などでしょうか? また、名前や更新時間順でファイルを開いていくように するにはどうしたらよろしいでしょうか。 ご回答よろしくお願い致します。 以下マクロ 'オブジェクトを設定する Set ファイルシステム = CreateObject("Scripting.FileSystemObject") '読み込むファイルを1個指定する あるブック = Application.GetOpenFilename("Excelファイル(*.xls),*.xls") '親フォルダーを取得する Set 親フォルダー = ファイルシステム.GetFile(あるブック).ParentFolder '親フォルダー内の全ファイルに以下の操作をする For Each ファイル In 親フォルダー.Files 'ファイルを開く Workbooks.Open ファイル.Path 'ブック名を記憶する ブック名 = ActiveWorkbook.Name '開いたファイルの伝票(NO)のシートを「全データ」シートの後ろにコピーする ActiveWorkbook.Worksheets("伝票(NO)").Copy After:=ThisWorkbook.Worksheets("全データ") '開いたファイルを閉じる Workbooks(ブック名).Close Next                                                 以上

  • エクセルVBAのメソッドSaveasについて

    Dell Dimention8300 HDD 80GB (空き領域 17.4GB) Pentium4 2.6GHz 512MB RAM Windows XP Pro/エクセル2002使用です。 エクセルVBAで下記のようファイルを追加するようにしました。 ブックA(.xls) 147KB ブックB(.xls) 18KB ブックC(.xls) 7,955KB ブックAにマクロを記述 ブックBから新しいファイルをつくる個数を取得 略 for i = 1 to (新しく作る個数)  Workbooks("ファイルC").Activate  ActiveWorkbook.SaveAs FileName:="C:\・・・・・・(新ファイル名)" next 略 ファイルCをメソッドSaveAsにて新しいファイルを作っていくのですが、その個数が数十個程度あれば問題ないのですが、100個を越えると非常に遅くなるか、途中でプログラムの応答がなくなります。 メソッドSaveAsが、CPUかメモリを浪費しているのかと思うのですが、関係あるでしょうか? よろしくお願いします。

  • EXCEL2000でのVBAについて

    お世話になります。 EXCEL2000のVBで下記のことをしたいのですが、うまく出来ないところがあり対処方法を教えて頂きたいです。 (1)アクティブブックの名前を取得   (2)ブックのセルA1の値を取得 (3)保存ダイアログでA1の値をファイル名にし保存 (4)保存したファイルを閉じる (5)基のアクティブブックを再度開く 以上です。 今できていないのは(1)と(5)です。 基のアクティブブックの名前をプログラム上に直接入力する分には出来るのですが、 ファイル名が変更になった時に、いちいちVBを書き換えるのが面倒なだけです… コードを提示しますので、ご教授願えればと思います。 Sub 保存() Dim ファイル名 As String, フォルダ名 As Object, フォルダ選択 As Object, ファイル名2 As Workbook Set ファイル名2 = ActiveWorkbook ファイル名 = Range("A1").Value Set フォルダ選択 = CreateObject("Shell.Application") Set フォルダ名 = フォルダ選択.BrowseForFolder(0, "保存フォルダを選んでください", 1) ActiveWorkbook.SaveAs Filename:=フォルダ名.items.Item.Path & "\" & ファイル名 & ".xls" MsgBox ファイル名 & ".xls", vbOKOnly, フォルダ名 & "に保存しました" Workbooks.Open "C:\test\" & ファイル名2 Workbooks(ファイル名 & ".xls").Close End sub ファイル名の取得が間違っていると思うのですが、ネットなどで調べてみましたが、よくわかりませんでした。

  • VBAで別プロセスのExcelのフルパスの取得

    いつもお世話になります。 Excel VBAで別プロセスで起動しているExcelブックのフルパスの取得方法を教えて頂けないでしょうか。 前提としては、ファイル自体はローカル環境に保存されているが、どこに保存されているかは分からない、というものになります。 別プロセスの場合はあらかじめフルパスが分かっていれば取得できるといったものはあったのですが、それをそもそも取得したいというのは見つけることができませんでした。 そもそもやりたいのは、プロセスが同じ、別であるに関わらず、起動している全てのExcelブックに対して、マクロを実行したいのですが、フルパスが分かれば処理を行うことができると考え、このような質問をするに至りました。 使用しているExcelは2003になります。 宜しくお願いします。

専門家に質問してみよう