プロが教える店舗&オフィスのセキュリティ対策術

(48行*4列)の数値が与えられた似たような31個のファイルを
一つのファイルにその行と列の形を崩さず新しくファイルを作りそこに
31個のファイルを縦に貼り付けていくVBAをかんがえているのですがわかりません。
どのような方法でプログラムを作ればよろしいでしょうか?

別にperl でもかまいません。

A 回答 (2件)

' フォルダ内のファイルを全て統合する。


Dim txt

Set Fs = WScript.CreateObject("Scripting.FileSystemObject")

txt = ""

' 指定フォルダ内のファイルの内容を変数に追記格納

Set oTarget = Fs.GetFolder(".")

For Each oFile In oTarget.Files

Set ts=Fs.OpenTextFile(oFile.Name,1,0)

txt= txt & ts.ReadAll
ts.Close
Set ts=Nothing

Next

' 変数の内容を一括ファイル出力
Set oTs = Fs.CreateTextFile("result.txt")
oTs.Write txt
oTs.Close

MsgBox "処理終了"

--------------------------------------------------------------
VBScriptではこんな感じ

テキストファイル(.txt)だけを処理対象にする
とかすると、こちらも参照するといいです。

http://www1.u-netsurf.ne.jp/~tomo_c/tips/R23Lev0 …
    • good
    • 0
この回答へのお礼

ありがとうございました。
これを機会に勉強を始めます。

お礼日時:2007/05/22 17:02

#1追加



Sub Test()
Dim myDir As String, myName As String
Application.ScreenUpdating = False
With ThisWorkbook
myDir = .Path & "\"
myName = Dir(myDir & "*.xls", vbNormal)
Do While myName <> ""
If myName <> .Name Then
Set wb = Workbooks.Open(myDir & myName)
          '//追加部分
For i = 1 To wb.Worksheets.Count
.Worksheets(1).Range("A65536").End(xlUp).Offset(1, 0).Value = _
wb.Worksheets(i).Range("A100")
Next i
          '//追加部分終わり
wb.Close
End If
myName = Dir
Loop
End With

End Sub
    • good
    • 0
この回答へのお礼

早速のご回答ありがとうございます。
対称としているファイルがCSVファイルなので、
myName = Dir(myDir & "*.xls", vbNormal)
の.xlsを.CSVに変えて試してみます。

お礼日時:2007/05/16 10:31

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!