• 締切済み

【Excel】VBAのサンプルを2007でも使えるようにしたい

http://www.geocities.jp/ttak_ask/office_docu/ef6.html​ こちらのサイトにサンプルが記載されています。 2007と2003でこれを使いたいのですが、2007でマクロを動かすと、エラーが出てしまいます。 調べてみました所、「With .FileSearch」が2007では使えないということなのですが、どうコードを書き換えたらいいのでしょうか。 (手元の本には、Dir関数を使用したファイル検索を使用します」とあるのですが、そちらは純粋にファイルを検索するという目的に使っていて、一方こちらはファイルを順番に読んでいく、という目的で使っているように思います。ですのでどうしたらいいのか、ちょっとわからないでいます) 詳しい方、どうかよろしくお願いします。

みんなの回答

  • KenKen_SP
  • ベストアンサー率62% (785/1258)
回答No.1

こんにちは。 > 「With .FileSearch」が2007では使えないということなのですが そのようです。確かに便利ではあったのですが、FileSearch は不安定で 信頼性に欠けました。Office 2007 から削除されたようです。 代替法ですが、サブフォルダ内の探索が必要なければ Dir で、サブフォルダ を含めて探索するには FileSystemObject または、API で再起処理する 方法があります。 Google 等で「 fso 再帰処理 」などで検索すると、サンプルソースが みつかるでしょう。 ただし、VBA の実行環境で Windows9x 系統の OS が含まれる、正確に 言えば、ファイルシステムで Fat を使ったディスク内のファイル探索を 行う場合、得られるファイル名順は HDD に保存された領域順になります ので、ファイル名順としたい場合は、事前にソート処理が別途で必要 になりますよ。  # FSO もそうだったかな。。うろ覚えです。Dir は間違いありません。 こうした煩わしい処理をお手軽に実現できた FileSearch が、バグ修正も されないまま簡単に削除されてしまったのは残念ですね。 やりたいことが具体的に書かれておりませんので、さわりだけ。  # 他サイトのサンプルソース修正をこの場でというのは、諸事情で  # やりにくいデス^^;  # したがって、具体的に「何をしたいのか」を書かれた方が的確  # な回答を得られますよ。

bari_saku
質問者

お礼

ご回答ありがとうございます。 まず、URLがうまいこと飛べないようなので、貼り直します。 http://www.geocities.jp/ttak_ask/office_docu/ef6.html  # したがって、具体的に「何をしたいのか」を書かれた方が的確  # な回答を得られますよ。 やりたいことは、本当にこのサンプルのままです(汗) まずパスを聞き、該当先にある同フォーマットのエクセルファイルの明細行を統合したいというものです。 厳密には、「何列目の行数を基準とするか」「何列目までのデータを取得するか」「明細行は何行目から始まるか」等は違いますが… (それぞれ3列目、16列目までです)

関連するQ&A