こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

EXCEL(VBA)

EXCELVBAで指定したフォルダ内にtextファイルをまとめるマクロを作成したいと思っています。
条件としましては、フォルダ名の5文字とtextファイルの最初の5文字を照合させて一致した場合そのフォルダにtexitファイルを収納していくといった感じです。
できればソースを教えていただくと助かります。

投稿日時 - 2011-01-18 13:28:14

QNo.6456761

すぐに回答ほしいです

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.3

Option Explicit

Sub TextCheck()
Const cnsDIR = "*.txt"
Const cnsPATHNAME$ = "C:\フォルダパス\"
Const strFOLDER$ = "check" '←入力フォルダ名
Const outBASENAME$ = "outfile.txt" '←出力ファイル名
Dim strPATHNAME$, strFILENAME$, outFILENAME$
Dim Irec$, inOK%, inNG%, outCNT!
strPATHNAME = cnsPATHNAME & strFOLDER & "\"
outFILENAME = cnsPATHNAME & strFOLDER & "\" & outBASENAME
'ファイル名の取得
strFILENAME = Dir(strPATHNAME & "*.txt", vbNormal)
'出力ファイルオープン
Open outFILENAME For Output As #1
inOK = 0: inNG = 0: outCNT = 0
'ファイルが見つからなくなるまで繰り返す
Do While strFILENAME <> ""
 '出力ファイルを対象としないように
 If strFILENAME <> outBASENAME Then
 '条件
  If Left(strFILENAME, Len(strFOLDER)) = strFOLDER Then
   inOK = inOK + 1
   Open strPATHNAME & strFILENAME For Input As #2
   Line Input #2, Irec
   '出力
   Print #1, Irec: outCNT = outCNT + 1
   Do Until EOF(2)
   '次のレコード入力
    Line Input #2, Irec
    '出力
    Print #1, Irec: outCNT = outCNT + 1
    Loop
   Close #2
  Else
   inNG = inNG + 1
  End If
 End If
 '次のファイル名を取得
 strFILENAME = Dir()
Loop
Close #1
MsgBox ("対象:" & inOK & " 対象外:" & inNG & " 出力件数:" & outCNT)
End Sub

主旨があってますか?環境設定は、ご自分で。

投稿日時 - 2011-01-19 09:21:17

ANo.2

良く質問者にあるが、 下記のようにも取れることが判らないのかな。
フォルダ内にtextファイルをまとめるマクロ、の意味が2義的で不明瞭。
●在るフォルダのテキストファイル「のすべて)をテキストファイルだけ別フォルダに写す
●在るフォルダの指定のテキストファイルを別のあるフォルダに写す
●在るフォルダのすべて(または指定の)のテキストファイルをレコード的に寄せ集めて、指定したフォルダ内の1本のテキストファイルにする。
など。
ーーー
在るフォルダのテキストファイルをとらえつくすコード
テキストファイルを読むコード、書き出すコード
別フォルダにファイルを写すコード
などは
VBScriptの本や、WEBのGoogleでも照会すれば、コード実例が出てくる。
この質問は、課題を丸投げしているが、回答者などは皆相当長期の苦労を経て経験を積んでいるのだ。

投稿日時 - 2011-01-18 23:37:28

ANo.1

フォルダ名はどうやって取得させようとしていますか?
どこかのセルにフォルダ名を書いておく?
InputBoxを使う?

textファイルはどこにあるのですか?

フォルダ名の5文字、とはどういう意味ですか?
5文字のフォルダがある?
6文字以上のフォルダの最初の5文字?

あなたはどの程度VBAを解っているのでしょうか?
プログラムを書いてあげたら、それをどうやって実行させるか解りますか?
簡単なプログラムなら書けますか?

投稿日時 - 2011-01-18 16:33:23

あなたにオススメの質問