
過去の質問の中から、素晴らしい結合のマクロを見つけましたが、パソコンをwindows7にエクセルを
エクセル2010に変更した後、マクロが使えなくなりました。
どなたか修正して頂けないでしょうか?
列の項目は定形で、10~200行のデータが書かれたCSVファイルが1つのフォルダに多数あります。
新しいファイルに、NO.1のファイルのデータの続きにNO.2、NO.3・・・と続けてデータが下の行に連続
して並ぶようにマクロで結合させたいと思っていますので、宜しくお願いします。
Sub Test1()
Dim files As FileSearch, FilesCnt As Integer, i As Integer
Dim cBook As Workbook, pBook As Workbook
FilesCnt = mySearch(files, ThisWorkbook.Path)
If FilesCnt = 0 Then Exit Sub
Set pBook = Workbooks.Add(xlWBATWorksheet)
For i = 1 To FilesCnt
Workbooks.Open files.FoundFiles(i)
Set cBook = ActiveWorkbook
cBook.ActiveSheet.UsedRange.Copy
With pBook.ActiveSheet
If i > 1 Then
.Cells(.Range("A65536").End(xlUp).Row + 1, 1). _
PasteSpecial (xlPasteAll)
Else
.Cells(.Range("A65536").End(xlUp).Row, 1). _
PasteSpecial (xlPasteAll)
End If
End With
Application.CutCopyMode = False
cBook.Close
Next i
Set cBook = Nothing: Set pBook = Nothing
End Sub
'********************************************************************
Function mySearch(files As FileSearch, myDir As String) As Integer
mySearch = 0
Set files = Application.FileSearch
With files
.NewSearch
.LookIn = myDir
.SearchSubFolders = True
.Filename = "*.csv"
If .Execute() > 0 Then mySearch = .FoundFiles.Count
End With
End Function
No.3ベストアンサー
- 回答日時:
こちらのような質問相談掲示板でも非常に良く寄せられるご質問の一種ですが、あなたが発見したマクロでやってるようにCSVファイルをエクセルで開いて操作すると、しばしばデータが変わってしまいます。
今まで全く問題が無かったのでそこは絶対心配無いという事なら、勿論構いませんが。既出回答にあるようにエクセルとか使わずにバッチで処理してしまう方が私も簡単とは思いますが、そこはまぁご質問なので、とりあえずベタなマクロでやらせてみると…
sub macro1()
dim myPath as string
dim myFile as string
dim s as string
mypath = thisworkbook.path & "\"
on error resume next
kill mypath & "out.csv"
on error goto 0
myfile = dir(mypath & "*.csv")
if myfile = "" then exit sub
open mypath & "out.csv" for output as #1
do until myfile = ""
open mypath & myfile for input as #2
do until eof(2)
line input #2, s
print #1, s
loop
close #2
myfile = dir()
loop
close #1
end sub
結果はout.csvというファイルに書き出しています。
ブックをCSVファイルが保存してあるフォルダに放り込んでマクロを実行します。
やはり既出回答でも指摘されているように、勿論マクロ有効で開いてマクロをキチンと実行する必要があります。
ありがとうございました。
とても簡単で、以前より早く作業ができました。
初心者なので、バッチで処理とかが良くわからなくて
申し訳ありませんでした。
とても助かりました。
No.2
- 回答日時:
フォルダ内のテキストファイルを全て結合するだけなのに何故そんな大層なことをするの?
そのフォルダ内に
copy *.csv output.csv
という内容のbatファイルを作って実行するだけでいいんじゃないの?
No.1
- 回答日時:
どこでエラーが出るのでしょうか
エラーではなく、まったく動かないということでしたらリボンの下に最初に出るコンテンツの有効化ボタンを押さないと実行できません。
参照:
http://officetanaka.net/excel/excel2010/008.htm
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Wordで貼り付け(ペースト)機能...
-
Powerpoint 2003 でのVBA UserF...
-
アクセスでファイルを開いたと...
-
VBAを一度起動するとずっと出て...
-
Windows10のクイックアクセスと...
-
excelファイルに使われているVB...
-
【マクロ】excelファイルを開く...
-
エクセルのマクロが急に動かな...
-
昨日まで動いていたエクセルの...
-
Excelが勝手にシート移動してし...
-
エクセルのマクロの保存先につ...
-
Excelマクロ ファイル名が変わ...
-
EXCEL マクロ クリップボードク...
-
Word 2016のマクロを Word 2021...
-
マクロで自動保存を無効にしたい
-
Microsoft Excelのファイルのエ...
-
エクセル2013vbaで、見えない名...
-
VB.NetでExcelファイルをAccess...
-
マクロが使えるExcelViewer
-
個人用マクロブックにマクロを...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Windows10のクイックアクセスと...
-
【マクロ】excelファイルを開く...
-
VBAを一度起動するとずっと出て...
-
昨日まで動いていたエクセルの...
-
excelファイルに使われているVB...
-
エクセル終了時の保存確認メッ...
-
Excelが勝手にシート移動してし...
-
コピーしたファイルのマクロを...
-
VBA マクロ実行時エラー’1004Ra...
-
Excelマクロ ファイル名が変わ...
-
別のパソコンでエクセルのマク...
-
エクセル2013vbaで、見えない名...
-
EXCEL マクロ クリップボードク...
-
マクロを消すマクロは不可能?
-
【マクロ】エラーが発生⇒実行時...
-
excelが別プロセスで起動してし...
-
マクロを設定したのに、拡張子...
-
【マクロ】宣言は、何のために...
-
作成したマクロを共有
-
マクロでマクロを削除する
おすすめ情報