• ベストアンサー

エクセルのマクロ

エクセルのマクロ(VBA?)で、あるフォルダ内のファイル名を取得する(拡張子が.txtのもだけ)関数があれば教えてほしいのですが・・・

  • mune
  • お礼率13% (21/151)

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

  • ベストアンサー
  • TAGOSAKU7
  • ベストアンサー率65% (276/422)
回答No.1

どもども 田吾作7です Dim wkPath As String Dim wkFile As String wkPath = "c:\*.txt" ' パスを設定 wkFile = Dir(wkPath) ' 最初のファイル取得 Do While wkFile <> "" ' 取得できなくなるまでループ Debug.Print wkFile ' 出力 wkFile = Dir ' 次のファイル名を取得 Loop こんな感じ でわでわ

mune
質問者

補足

ありがとうございます。できました。 ついでに取得したファイル名をソート(五十音順)して、何か処理等するには、配列に入れて、配列をソートするようなことをすればよいのでしょうか?そのほか何か良い方法はあるのでしょうか? よろしくお願いします。

その他の回答 (1)

  • TAGOSAKU7
  • ベストアンサー率65% (276/422)
回答No.2

どもども田吾作7です。 ソートですか?たぶん文字コードでソートされた順番で取得してると思いますよ。。 別の質問で >f_name = "d:\" + Trim(Str(i)) + ".txt" としていましたね? これで取得すると[1.txt],[10.txt],[2.txt],・・・[9.txt]となるはずです。 もしかして[1.txt],[2.txt],・・・[10.txt]としたいのですか? これを回避するためには、桁を揃えるようにしましょう。 f_name = "d:\" + format(i,"00) + ".txt" とすると、ファイル名は今までとちょっと変わってしまいますが [01.txt],[02.txt],[03.txt],・・・[10.txt] という順番に取得可能だと思います。 でわでわ

関連するQ&A

  • Excelでのマクロ化

     Excel(2000)の表のB列に2000.doc~順にファイル名(全て数字+拡張子)が入っています。それにリンクを貼っていきたいのですが、マクロで自動化するにはどのようにすれば良いのでしょうか?また、拡張子がdocで存在しないものには、代わりにtxtのものを貼りたいのですが。どちらも同じフォルダにありますし、docもtxtもあるものもありますが、docもしくは、txtは必ず存在します。  ちなみに、今までは、手で1つづつハイパーリンクで貼っていたのですが、先日より1日に5~10ファイルづつ増えてくるようになったので困っています。  また、このようなマクロの参考書で、これが良いよというものを紹介していただけるとありがたいのですが。もちろん、HPのURLでも構いません。 よろしくお願いします。

  • エクセル:マクロを使ったリネーム

    お世話になります。 下記の内容をエクセルのマクロでできるでしょうか? あるフォルダ(ここでは例としてAフォルダとする)のなかに複数のフォルダがはいっています。これらのフォルダ名は実際はかなり長いのですが、必ず5桁の数字+アンダーバーではじまります。 (例:00123_●●●) この各フォルダにはいくつかのファイルが入っていて、拡張子がxmlのファイルが必ず1つ入っています。この拡張子がxmlのファイル名の先頭にフォルダの5桁の数字+アンダーバーをつけた名前にリネームしたいのです。 例:abcde.xml でフォルダ名が00123_●●●の場合  → 00123_abcde.xml にする。 そしてリネームしたxmlファイルをAフォルダ直下に移動させたい。 事情がありリネームソフト等は使えません。 マクロを記述したエクセルファイルをAフォルダ直下に入れて動作させるものとします。 エクセル2003です。 よろしくお願いします。

  • エクセル マクロで特定ファイル名だけを開く

    エクセルのマクロで 特定のファイル名だけをフォルダの中から探して 開くというものを作りたいのですが うまくできません。 フォルダを指定して 「060927.xls」というエクセルファイルだけを 開きたいのですが この日付のところが毎日変わるので 「06XXXX.xls」というような 最初が06であと4つの文字が入ってるファイル名だけを 流動的に指定できるようにするには どのようなVBAマクロにすればよいのでしょうか? とても困っています。 是非教えてください!宜しくお願いします。

  • エクセルでファイルをcsv形式で保存するマクロについて

    同様の質問が以前にあったのですが、 どうやら私のは少し違うようなので新規質問として投稿させていただきます。 エクセルファイルを保存する際、保存形式を「テキスト(タブ区切り)(*.txt)」にして、 ファイル名の拡張子の部分だけ(.csv)にして保存するマクロを作成したいです。 しかし、エクセルに付いているオートマクロ機能で記録しようとすると、 ・ファイル名がオートマクロを作成した際に付けたファイル名になってしまう。 ・保存場所がオートマクロを作成した際に保存したフォルダになってしまう。 という問題が発生します。 なので、 ・保存する際のファイル名は現在作業しているファイルの名前をそのまま使用する。 ・保存する際のファイル名の拡張子部分は(.csv)に変更する ・保存場所は現在作業しているファイルがあるフォルダにする(もしくはプログラムで予めパスを指定できる)。 ・保存形式は「テキスト(タブ区切り)(.txt)」 の4つの条件を満たすマクロの作成方法をお教えいただけますでしょうか? すみませんが、よろしくおねがいします

  • エクセルVBAからのファイル操作コントロール

     いつもお世話になっております。  エクセル97を使用しています。 VBAでマクロを組む際、処理中で名前の判っているテキストファイル(拡張子txt)を退避させたいケースが発生しました。  単純にあるフォルダから、あるフォルダにコピーをとっておくだけなのですが、エクセルのVBAからコントロール出来るのでしょうか?  出来るなら、どう記述すれば良いか、ご指導願います。  よろしくお願い致します。

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

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

  • エクセルマクロで同じフォルダ内のテキストファイルをメモ帳で開く方法

    「マクロを記述したエクセルファイルと同じフォルダにある、 特定のファイル abc.txt を、メモ帳で開く」ということをしたいのですが、マクロの記述をご教授下さい。 フォルダ名を固定すると、 Shell "notepad C:\--\abc.txt", vbNormalFocus という形でできたのですが、 フォルダの名前は、固定ではなく、変わります。 ですので、フォルダ名が含まれると都合が悪くなってしまうんです。 エクセル2000、WINDOWS XP を利用しています。 どうぞよろしくお願いいたします。

  • エクセル VBA :FileSerchについて教えて下さい。

    エクセルVBAのfileserchで、ファイルの種類を選ばないといけませんが、このとき「不明なファイル」を指定したいです。そのやり方を教えてください。しかし、私がやってみたところ無理でしたので他のやり方でも結構です。教えて下さい。簡単にその目的を下に記しています。 目的:あるフォルダにある「不明なファイル」に拡張子「.txt」をつけてテキストファイルにする。 ↓ そのため、フォルダ内の全ての「不明なファイル」を取得したい。

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

    いつもお世話になっております。 エクセルのマクロについて質問させていただきます。 仕事上測定した10回データを、エクセルで計算させ平均やσ出すという処理を毎回しているのですが、測定したデータというのが、csvファイルで10個できあがり、それを一つずつ開いては貼っての繰り返しをしています。 この作業をマクロで自動的に出来ないものかと思い質問させていただきました。 装置によって毎回.csvの前のファイル名が変る恐れがあるので、csvファイルの入っているフォルダ(ディレクトリを指定)を指定し、その中にあるcsvファイルを自動的に貼る事が出来る事が理想です。 VBAではこのような処理のサンプルプログラムがあるのですが、VBAはあまり解らないので出来ればマクロの記録からできればと思います。 宜しくお願い致します。

  • フォルダ内全ファイルをシート毎に貼付方法について

    VBA仙人様ご教授お願い致します。 1フォルダに数十のログファイル(.txt)が格納されています。 1ファイルは3~5万行記述あります。 これを1つのExcelファイルにしたいと思っています。 VBA流れとして (1)ログ格納フォルダを選択 (2)ログファイル名を取得 (3)既存Excelファイルに(2)で取得したファイル名(.txt除いた)で順次シートを追加 (4)ログファイル=シートとなるようにファイル読み込み/貼り付け (5)ログファイルを閉じる VBAイメージ 格納フォルダ:C:\test \test内    :A001.txt,A002.txt,B003.txt・・・・・・・・Z051.txt(このフォルダにはログのみ格納) C:デスクトップ\集計マクロ.excel (VBAの記述のあるExcelシートにはSheet1のみが存在) VBA前 集計マクロ.excel/Sheet1 VBA実行後 集計マクロ.excel/Sheet1,A001,A002,B003,D004・・・・・・・・・Z051が追加、シート毎にログ情報記載 単一ファイルの読み込み/ファイル名をシート名に付与/情報コピペ/ファイル閉じについては、 作成できたのですが、複数ファイルの場合のファイル名を順次取得し、シート名として付与するなど objやValiant変数などで試行錯誤しましたが解決できず、こちらに質問されていただきました>< このVBAで作成されたシートからの集計マクロについては完成していますが、 その手前でつまづいています>< ご教授のほどお願い致します><

専門家に質問してみよう