過去の質問の中から、素晴らしい結合のマクロを見つけましたが、パソコンを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で質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) vbaのエラー対応(実行時エラー7:メモリが不足しています) 4 2023/04/24 00:20
- Visual Basic(VBA) 【前回の続き続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/24 20:49
- Visual Basic(VBA) VBAが止まります。 1 2022/09/02 14:51
- Visual Basic(VBA) VBAのユーザーフォームのテキストボックスに入力制限をしたい 6 2022/11/15 08:28
- Visual Basic(VBA) 【ご教示ください】VBAの記述方法がわかりません。 2 2022/08/12 21:28
- Visual Basic(VBA) 【前回の続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/16 16:44
- Visual Basic(VBA) VBA 請求書自動作成 3 2022/04/24 01:58
- Visual Basic(VBA) VBAが止まります。 2 2022/09/02 14:02
- その他(Microsoft Office) マクロVBAについて 1 2022/09/06 18:12
- Visual Basic(VBA) エクセルVBA(実行時エラー438)の対処法を教えてもらえないでしょうか 3 2023/04/22 13:43
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルでファイルを表示した...
-
秀丸で保存時のフォルダを固定...
-
Excelマクロ ファイル名が変わ...
-
エクセルマクロを有効にしない...
-
ダブルクリックでエクセルのセ...
-
Excelが急に遅くなりました。解...
-
マクロが入っているファイルを...
-
Excel のマクロを常に有効にで...
-
エクセル2013vbaで、見えない名...
-
【マクロ】その時、その時で変...
-
パソコンについて2点教えてくだ...
-
昨日まで動いていたエクセルの...
-
エクセル2000と2002ではうまく...
-
エクセルマクロ実行中に別ファ...
-
excelファイルに使われているVB...
-
エクセル マクロが無効になる
-
Excelの マクロってファイルの...
-
エクセルファイルを自身のファ...
-
アクセスからエクセルファイル...
-
Adobe Reader を閉じる
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセル終了時の保存確認メッ...
-
VBAを一度起動するとずっと出て...
-
【マクロ】その時、その時で変...
-
VBA マクロ実行時エラー’1004Ra...
-
昨日まで動いていたエクセルの...
-
マクロの有効化するダイヤログ...
-
別のパソコンでエクセルのマク...
-
コピーしたファイルのマクロを...
-
EXCEL マクロ クリップボードク...
-
excelファイルに使われているVB...
-
エクセルファイルを自身のファ...
-
Excelマクロ ファイル名が変わ...
-
Microsoft Excelのファイルのエ...
-
Excelが勝手にシート移動してし...
-
excelが別プロセスで起動してし...
-
エクセルマクロ実行中に別ファ...
-
エクセル2013vbaで、見えない名...
-
マクロでマクロを削除する
-
アクセスでファイルを開いたと...
-
Excel2010 PERSONAL.xlsbの挙動...
おすすめ情報