• 締切済み

フォルダ内のファイルを上から読み込み、別ファイルにレコード化して移すとき

フォルダA   ファイル1      氏名:太郎      番号:3210   ファイル2      氏名:次郎      番号:3211   ファイル3      氏名:三郎      番号:3212 ファイルS   読込ボタン       氏名:     番号: 1.ファイルSの読込ボタンを押す 2.フォルダA内のファイル1の氏名、番号を読込む 3.読込んだ氏名、番号をファイルSに1行のレコードとして書き込む 4.そのままファイル2の氏名、番号を読込みファイルSの3.で書き込んだレコードの下(2行目)に書き込む 5.ファイル3を読込んで、同様の処理を行う。 6.フォルダ内のレコードを全て読み込み、ファイルSに書き込んだら終了 説明が下手ですいません。 要は、ボタン一つでフォルダ内のすべてのファイルの氏名、番号項目を読み込んで別ファイルにレコード化する処理を行いたいのです。 VBAで上記の処理を行いたいのですが、構文が書けずにに悩んでいます。 VBAの勉強を始めたのが4日前で、それ以前に開発の経験はありません。 参考書などを読んでも、参考になる構文が載っておらず、いま一つわかりません。 どなたか、構文を教えて頂けると助かります。 宜しくお願い致します。

みんなの回答

回答No.4

前回載せたのは指定したフォルダ内のファイルを取得するという今回の質問の一番大変だろうと思われる部分であってそれをそのまま利用して出来るものではありません。 文中にも「参考になりそうなサイト」と書いたはずですが・・・ 前回載せたサイトのコードが理解できるのであれば、どの時点でフォルダ内のファイルが取得できるかわかると思います。 その場所でWorkBookをOpenしてあげれば、シート内の操作ができるはずです。 http://officetanaka.net/excel/vba/file/index.htm http://home.att.ne.jp/zeta/gen/excel/c04p24.htm これもGoogleで「Excel ファイル操作」と検索すれば出てきます。 参考に出されたものはあくまで参考です。 答えではありません。 お礼に載せて頂いたコードはサイト内を抜き出したものですよね。 VBAはデバッグできるのですから、ヘルプやインターネットで調べる癖をつけないと今後苦労すると思いますよ。

回答No.3

ネットで検索してみましたか? Googleで「VBA Excel フォルダ内」と検索すれば一番上に参考になりそうなサイトが出てきますよ。 http://www.asahi-net.or.jp/~ef2o-inue/vba_o/sub05_110_120.html 参考資料は基本的なこと、一般的に使われそうなことしか書かれていません。 ※たまにマニアックなことも書いてありますが。 調べるのであればインターネットを使いましょう。 便利なのですから・・・

SALONPAS77
質問者

お礼

参考サイトありがとうございます。 現在、下記のDir関数を用いたフォルダ内ファイルの一覧取得を参考に考えているのですが、ファイルの一覧をレコード化するのではなく 更にファイルの中の項目を参照し、レコード化したいのですが、その方法で悩んでいます。 もしよろしければ力をお貸し下さい。 Option Explicit ' 指定したフォルダ内のファイルの一覧を取得 Sub Display_Directory() Const cnsTITLE = "フォルダ内のファイル名一覧取得" Const cnsDIR = "\*.*" Dim xlAPP As Application Dim strPATHNAME As String Dim strFILENAME As String Dim GYO As Long Set xlAPP = Application ' InputBoxでフォルダ指定を受ける strPATHNAME = xlAPP.InputBox("参照するフォルダ名を入力して下さい。", _ cnsTITLE, "C:\") ' (1) If StrConv(strPATHNAME, vbUpperCase) = "FALSE" Then Exit Sub ' フォルダの存在確認 If Dir(strPATHNAME, vbDirectory) = "" Then ' (2) MsgBox "指定のフォルダは存在しません。", vbExclamation, cnsTITLE Exit Sub End If ' 先頭のファイル名の取得 strFILENAME = Dir(strPATHNAME & cnsDIR, vbNormal) ' (3) ' ファイルが見つからなくなるまで繰り返す Do While strFILENAME <> "" ' (4) ' 行を加算 GYO = GYO + 1 ' 先頭は1行目 Cells(GYO, 1).Value = strFILENAME ' (5) ' 次のファイル名を取得 strFILENAME = Dir() ' (6) Loop End Sub

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

ファイルの種類も質問で書いてなくて、どうした。ブックとかけば判るが。 エクセルだろうね。エクセルVBAでよいのだね。 フォルダ1のファイルには、エクセルブック以外ないのか。 フォルダ1のブックのシートの項目構成は皆同じか。 ーーー これなど丸投げの質問ではないか。規約上遠慮していただくタイプ。 コードを回答者に全的に頼むのは困る。 この累計の質問はこのコーナーでも月に2三度は出る質問。 Googleで「フォルダ ファイル 一覧」などで照会すれば、たくさんコード例が出る。 ーー まづフォルダ内のファイルを全て掴む(ファイル名をMsgboxで表示 、(できればエクセル以外は排除)のコードがどうなるか勉強から始めるのがよかろう。 大きく分けて FSOを使う Dir関数を使う その他、がある。初心者ならDir関数利用かな。 それを自分の場合にどう修正したらよいか考えて、行きづまった点があればその点を質問すべきだ。 あとブックが捉えられた、そのシートを検索するコードの勉強になるが、検索操作をして、マクロの記録を取り、コードをどう修正したらよいか勉強する。

SALONPAS77
質問者

お礼

様々な指摘ありがとうございます。 そうですよね、説明不足の部分が多々あり、申し訳ありあませんでした。 今後、このような質問にならないように気をつけます。 また検索の仕方や、勉強方法のアドバイス。 ありがとうございます。 Dir関数利用の方を使って考えてみます。 またわからなくなった時は、力を貸して頂けると助かります。

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

”ファイル”とは何を差してますか? Excelブック?テキストファイル?その他? アプリケーションは? Access・Excel・Word・etc

SALONPAS77
質問者

お礼

ご連絡ありがとうございます。 説明不足ですいません。 ファイル”とは何を差してますか? Excelブックです。 アプリケーションは? Excelです。