A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
こういう手作業では面倒なものはVBAでやるほか仕方がない。
そういうことを認識した上で、今までVBAを少しやった人ならWEB記事を調べて、コードを作れるでしょう。 今までやったこともないなら丸投げの、回答コピペになるが、その後の「質問者に合わせた、対処(修正)が出来ず無理だろう。
VBAでは無いがFSOを使うほうが良いでしょう。Dir関数を使うというのも在るが
(1)フォルダ内のファイル名を順次掴む。
テキストファイル以外があるなら、拡張子で篩(ふるい)に掛ける。
(2)そのファイル名でそのテキストファイルを開き、レコードを終わりまで1つずつ、読む
エクセルでは列に当たる項目に分離して、その行にデータをセット刷る
次のレコードを読む
(3)終わると、次のファイルを掴んで同じ処理をする。
そのフォルダで尽きた場合は、次のフォルダに行く
ーー
フォルダの数はきまっているのか。すなわち名前は(列挙的で)決っているのか?>とこのような感じで、とぼかされると判らない。
親フォルダの下にあるフォルダの中の(テキストファイル)ファイルをすべて対象にするのか。
これらのループ関連を図示して整理し、コードに取り掛かれば、勉強するコードのタイプとしては2,3類型だ。
外から
(1)親フォルダのループ
(2)フォルダのファイルを掴むループ
(3)ファイルのレコードを読み処理するループ
(4)シートの各列にデータをセットするループ
などがネストすることになろう。
データ実物が無いのでコードを作成してテストできない。本来質問者がこつこつやるべきことだ。
ーー
http://itpro.nikkeibp.co.jp/article/COLUMN/20060 …
に類したものが沢山在る
Googleで「FSO フォルダ内ファイルを掴む」「FSO フォルダ ファイル」などで照会。
ーー
テキストファイルを読む
http://www.ken3.org/vba/backno/vba029.html など
テキストファイルもCSV始め色々あるのに質問に書いてない。認識が甘い。そういうことだと、回答者もコードはかけない。
回答ありがとうございます。
いろいろ教えて頂きありがとうございます。
ちょっと自分には、敷居が高く理解できません。
今回のケースで具体的なVBAを教えて頂けないでしょうか?
よろしくお願いします。
No.1
- 回答日時:
マクロを作ってみました。
Sub Sample()
Dim buf As String
Dim buf2 As String
Dim cnt As Long
Dim lp As Long
Dim lr As Long
Dim f(4) As String
Dim Path As String
Dim st(4) As String
f(1) = "C:\フォルダ1\" 'フォルダ1は、実際のフォルダ名に修正する
f(2) = "C:\フォルダ2\"
f(3) = "C:\フォルダ3\"
f(4) = "C:\フォルダ4\"
st(1) = "Sheet1" 'Sheet1にフォルダ1の内容を貼り付ける
st(2) = "Sheet2"
st(3) = "Sheet3"
st(4) = "Sheet4"
For lp = 1 To 2
lr = 1
cnt = 0
Path = f(lp)
buf = Dir(Path & "*.txt")
Do While buf <> ""
cnt = cnt + 1
Worksheets(st(lp)).Cells(lr, 1) = f(lp)
Worksheets(st(lp)).Cells(lr, 2) = buf
Open Path & buf For Input As #1
Do Until EOF(1)
Line Input #1, buf2
Worksheets(st(lp)).Cells(lr, 3) = buf2
lr = lr + 1
Loop
Close #1
buf = Dir()
Loop
Next lp
End Sub
回答ありがとうございました。
今、試してみたのですが、私の思っているのとは違うようです。
各カテゴリをシート別に分けるのではなく、あくまでも、シート1のA列にカテゴリをB列にはテキストファイルの名前を、そして、C列にはテキストファイルの中身を入れたいです。
また、テキストファイルには改行が入っています。
1つのセルに改行を含めた文章を入れたいです。
また、フォルダの数も多いので、いちいちマクロに書くのが面倒です。
せっかく作って頂いたのですが、申し訳ありません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・「I love you」 をかっこよく翻訳してみてください
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・昔のあなたへのアドバイス
- ・かっこよく答えてください!!
- ・あなたが好きな本屋さんを教えてください
- ・スタッフと宿泊客が全員斜め上を行くホテルのレビュー
- ・【大喜利】【投稿~8/27】 こんなガソリンスタンド二度と来るか!なぜそう思った?
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・【お題】動物のキャッチフレーズ
- ・【お題】甲子園での思い出の残し方
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・「それ、メッセージ花火でわざわざ伝えること?」
- ・自分用のお土産
- ・人生で一番お金がなかったとき
- ・一番好きなみそ汁の具材は?
- ・泣きながら食べたご飯の思い出
- ・ちょっと先の未来クイズ第1問
- ・ゴリラ向け動画サイト「ウホウホ動画」にありがちなこと
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Windows10でコマンドプロンプト...
-
フォルダ選択ダイアログ:ネッ...
-
Excel VBA 同じ名前のフォルダ...
-
META-INFフォルダの置き場所に...
-
デスクトップの画像をhtmlに表...
-
セレクトボックスで選択された...
-
Downloaded Program Filesはど...
-
ファイル名と同名のフォルダを...
-
VBAで、ファイルを移動する方法...
-
パス名に2バイト文字(マルチバ...
-
VBAでファイル名を指定して保存...
-
VBプロジェクトでのフォルダ構...
-
Excelvbaでブックをコピー名前...
-
getImageでのファイルパス
-
マクロでネットワークドライブ...
-
excel VBA Dirにて検索したフォ...
-
Access VBA で フォルダ権限...
-
エクセル VBAについて教えてく...
-
VB6でCSVファイルにパスワード...
-
MinGWで正規表現(regex.h)がし...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Windows10でコマンドプロンプト...
-
VBA 最新のフォルダ取得
-
ファイル名と同名のフォルダを...
-
デスクトップの画像をhtmlに表...
-
Excelのハイパーリンクについて...
-
VBプロジェクトでのフォルダ構...
-
会社のネットワーク上のファイ...
-
【マクロ】ファイル名の日付に...
-
パス名に2バイト文字(マルチバ...
-
Access VBA で フォルダ権限...
-
カレントフォルダって?
-
VBA フォルダ名に特定の文字を...
-
ExcelVBAでフォルダへのハイパ...
-
C ファイル出力で、フォルダが...
-
excelマクロ 冒頭3文字が一致す...
-
マクロVBAのフォルダ階層別で検...
-
保存先のフォルダ名を指定した...
-
Excelで指定したフォルダに保存...
-
ディレクトリ名変更してコピー...
-
vbsで選択ダイアログを表示した...
おすすめ情報