
マクロ超初心者です。
フォルダ内のすべてのcvsファイル(500程度)の5列目(500行程度)を新規ファイルの1列目から順にコピーしていきたいのです。
ちなみに元のcvsファイルのシート数は一つだけでシート名には全てファイル名が付いています。
(つまり全てのファイルのシート名が異なる)
見よう見真似で似たようなマクロから意味もわからないまま
つぎはぎして下記作りましたが
やっぱり動きません。
どなたか詳しい方どうかよろしくお願いします。
Sub Sample()
Const FolderPath As String = "C:\data"
Dim objFSO As Object
Dim objBook As Object
Dim lngRow As Long
Application.ScreenUpdating = False
Set objFSO = CreateObject("Scripting.FileSystemObject")
For Each objBook In objFSO.GetFolder(FolderPath).Files
lngcolumn = ThisWorkbook.Sheets("sheet1").Range("A" & Columns.Count).End(xlToRight).Column + 1
Workbooks.Open objBook.Path
With ActiveWorkbook
.Worksheets(1).Column("5").Copy ThisWorkbook.Sheets("sheet1").End(xlToRight).Offset(0, 1)
.Close
End With
Next
Set objFSO = Nothing
Application.ScreenUpdating = True
End Sub
No.2ベストアンサー
- 回答日時:
私なら、こんな感じで作ります。
Sub test()
Const FolderPath As String = "C:\data"
Dim Filename As String
Dim Sh0 As Worksheet, Sh As Worksheet
Dim c As Long
Set Sh0 = ActiveSheet
Filename = Dir(FolderPath & "\*.csv")
Do Until Filename = ""
c = c + 1
Set Sh = Workbooks.Open(FolderPath & "\" & Filename).Sheets(1)
Sh.Columns(5).Copy Sh0.Columns(c)
Application.DisplayAlerts = False
Sh.Parent.Close
Application.DisplayAlerts = True
Filename = Dir()
Loop
End Sub
完璧に動作しました。どうもありがとうございます。
半日がかりの仕事がトイレに行ってる間に済んでしまい、猛烈に感動しています。
ただ、当方のスキルがなさ過ぎ、内容を理解したとまでは到底言えませんので
時間をかけてじっくり解読してみたいと思います。
半ば心折れ掛けておりましたが、マクロ習得のモチベーションも
一気にMAXに上がりました。
重ね重ねありがとうございました。
ちなみに今さらですが
下から7行目くらいののコードで「実行時エラー438、オブジェクトはこのプロパティまたはメソッドをサポートしていません」と出てました。どうも失礼しました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
【教えて!goo ウォッチ 人気記事】風水師直伝!住まいに幸運を呼び込む三つのポイント
記事を読む>>
-
Excel VBAで同じフォルダ内のファイルを開くには?
Excel(エクセル)
-
VBAで同じフォルダのCSVを同じシートに読み込みたいです。
PowerPoint(パワーポイント)
-
Excel VBAを使った複数のCSVファイルの読み込みについて教えてください。
Excel(エクセル)
-
4
【VBA】複数CSVの特定範囲を1つのワークシートにコピー/ペーストするコードの修正
Visual Basic(VBA)
-
5
エクセル:マクロ「Application.CutCopyMode = False」って?
Excel(エクセル)
-
6
大量のCSVデータを1つのエクセルデータにまとめる方法について
Excel(エクセル)
-
7
複数のcsvファイルを1つのEXCELファイルにマージするVBAを教えてください
Excel(エクセル)
-
8
【VBA】テキストファイルを指定行数からの読み込み
Visual Basic(VBA)
-
9
エクセルVBAでセルに入力したパスでブックを開く
Excel(エクセル)
-
10
vba 2つの条件が一致したらコピーして別シートに値のみ貼り付け
Visual Basic(VBA)
-
11
EXCEL VBA ー 同一フォルダ内のCSVファイル名を変更
Excel(エクセル)
-
12
別ブックをダイアログボックスで指定してそこにあるシートをコピーしたい
Excel(エクセル)
-
13
csvファイルのデータの一部を取り出したい
Visual Basic(VBA)
-
14
EXCEL VBAで全選択範囲の解除
Excel(エクセル)
-
15
VBAでcsvファイルを読み込んで並び順を変える方法
その他(プログラミング・Web制作)
-
16
Excel マクロ VBA プロシージャが大きすぎます のエラー対処方法
Visual Basic(VBA)
-
17
Excel VBA A列が特定の値以外の場合、その行を削除
Excel(エクセル)
-
18
EXCEL VBA 指定したファイルが存在しない場合メッセージボックスを表示させる
Access(アクセス)
-
19
複数のCSVファイルからのデータ取得(VBA)
その他(Microsoft Office)
-
20
csvファイルを開かずに文字を検索し行を抽出したい
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
人気Q&Aランキング
-
4
ファイルを開かずにマクロを実行
-
5
フォルダ内のブック全部にパス...
-
6
VBAでワークブックの名前を変数...
-
7
データ参照先が別ファイルの場...
-
8
フォルダ内の複数ファイルの一...
-
9
フォルダ内のexcelファイルを順...
-
10
エクセルのシートの数を数えた...
-
11
エクセルデータが突然破損します。
-
12
エクセル 複数ファイルの一括...
-
13
エクセルのxls形式からxlsx形式...
-
14
EXCELが終了できません
-
15
Excelのマクロでファイルを開く...
-
16
<ACCESS VBA -> EXCEL>getObjec...
-
17
エクセルVBA 上書き保存禁止と...
-
18
LTSpiceにLMV358-Nのモデルを入...
-
19
vlookup関数の引数を変数で指定...
-
20
エクセルマクロで不特定なファ...
おすすめ情報
公式facebook
公式twitter