
フォルダの中に、あるアンケートに対する回答のエクセルファイルがあり(名前はバラバラ)、別の場所にその回答を一覧に並べるための"集計用ファイル"がります。このアンケートの回答ファイルは日々数が追加されて行くので、毎日"集計用ファイル"に回答を得た分を転記し日付の名前でもつけて保存して行きたいのです。エクセルマクロを使用して、回答ファイルの特定の部分に入力された内容を一人一列となるように"集計用ファイル"へ転記します。こちらで教えて頂いたりネットや本を見て下記までは理解しました。
■質問
各行の先頭に転記元のファイル名も記入するにはどの様な記述が必要かおしえてください。いろいろ試したのですが、力量不足でエラーもしくは全く反映されないものしか出来ませんでした。
よろしくお願い致します。
=============================================
Sub 転記2()
Dim WorkPath As String
Dim Target As String
Dim MaxRow As Long
Application.ScreenUpdating = False
WorkPath = "C:\Documents and Settings\Zawa\デスクトップ\Test"
Target = Dir(WorkPath & "\*.xls", vbNormal)
MaxRow = 1
Do While Target <> ""
Workbooks.Open WorkPath & "\" & Target
Workbooks(Target).Sheets("Sheet1").Rows("1:1").Copy _
ThisWorkbook.Sheets("Sheet1").Cells(MaxRow, 1)
MaxRow = MaxRow + 1
Workbooks(Target).Close SaveChanges:=False
Target = Dir()
Loop
MsgBox "転記が終了しました。"
End Sub
No.2ベストアンサー
- 回答日時:
おはようございます。
merlionXXです。前回の続きのようですね。
Workbooks(Target).Sheets("Sheet1").Rows("1:1").Copyと、1行目全部をコピーしているのはデータの範囲(どの列までなのか)が一定ではないからなのでしょうか?
だったらこうしてみてください。入力のある最右列の列番号を取得しXとします。
Sub 転記2()
Dim WorkPath As String
Dim Target As String
Dim MaxRow As Long, x As Long
Application.ScreenUpdating = False
WorkPath = "C:\Documents and Settings\Zawa\デスクトップ\Test"
Target = Dir(WorkPath & "\*.xls", vbNormal)
MaxRow = 1
Do While Target <> ""
If Target <> ThisWorkbook.Name Then
Workbooks.Open WorkPath & "\" & Target
With Workbooks(Target)
With .Sheets("Sheet1")
x = .Cells(1, Columns.Count).End(xlToLeft).Column
.Range(.Cells(1, 1), .Cells(1, x)).Copy ThisWorkbook.Sheets("Sheet1").Cells(MaxRow, 2)
End With
ThisWorkbook.Sheets("Sheet1").Cells(MaxRow, 1).Value = Target
MaxRow = MaxRow + 1
.Close SaveChanges:=False
End With
End If
Target = Dir()
Loop
Application.ScreenUpdating = True
MsgBox "転記が終了しました。"
End Sub
またまたありがとうございました。
イロイロな書き方がるんですね。
本当に勉強になります。
前回教えて頂いた内容もあわせ、ここ数日でぐっと理解が進みました。ありがとうございました。<(_ _)>
No.3
- 回答日時:
#1です。
回答ではないですが読み込みたいシートと範囲が決まっているのなら、
ブックを開かないで読む
http://officetanaka.net/excel/vba/tips/tips28.htm
も一読されておくと良いかもです。
No.1
- 回答日時:
>Workbooks(Target).Sheets("Sheet1").Rows("1:1").Copy
これが例えばA~F列なら
~.Range("A1:F1").Copy
として
>ThisWorkbook.Sheets("Sheet1").Cells(MaxRow, 1)
ThisWorkbook.Sheets("Sheet1").Cells(MaxRow, 2)
⇒B列に貼付け
ThisWorkbook.Sheets("Sheet1").Cells(MaxRow, 1).Value = Target
を追加すればよいのでは?
無事に名前を取得できました。
ありがとうございます。
よりシンプルな書き方を教えて頂きどんどん理解が進んできました。もう一歩でブレイクスルーしそうな予感です。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) vbaのエラー対応(実行時エラー7:メモリが不足しています) 4 2023/04/24 00:20
- Visual Basic(VBA) フォルダの場所を可変にしたいです(マクロ) 4 2023/05/11 10:00
- Visual Basic(VBA) 複数csvを横に追加していくマクロについて 2 2023/04/25 09:19
- Visual Basic(VBA) エクセルVBA(実行時エラー438)の対処法を教えてもらえないでしょうか 3 2023/04/22 13:43
- Visual Basic(VBA) excel vbaでvlooupの変数がわかりません。 7 2022/05/30 09:35
- Excel(エクセル) Excel VBAどこが間違ってますか? 4 2023/07/17 10:04
- Visual Basic(VBA) 集めたシートのシート名を変更したい。 下記のコードでサブフォルダにあるファイルのSheet3を集めて 6 2022/08/23 10:38
- Visual Basic(VBA) 【前回の続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/16 16:44
- Visual Basic(VBA) ファイル名の右側を変更したい ファイル名:「1001日別売上」の左側へ「2022」を追加し、「202 6 2022/10/14 10:03
- Visual Basic(VBA) 【Excel VBA】自動メール送信の機能追加 5 2022/09/29 12:53
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【スプレドシート】IMPORTRANGE...
-
Excel 2枚目のブックが開かな...
-
PhotoshopでExcelのファイルが...
-
パワーポイントをエクセルファ...
-
エクセルで「500時間」を「何日...
-
エクセルでファイルを閉じても...
-
エクセル文書を保存したらメモ...
-
Accessのクエリの結果を、既存...
-
CSVファイルでVBAを動かす方法
-
EXCELで上書き保存しないと反映...
-
ExcelファイルがDoxillionに突...
-
Windows95を98にアップする手順...
-
メール添付されているファイル...
-
ピボットテーブルの更新ができない
-
エクセル関数の解読サイトなん...
-
メモ帳で開く設定を元に戻したい。
-
いきなりPDFでPDFファイルを開...
-
xl
-
エクセルを上書き保存したのに...
-
拡張子「.emz」を開きたい。
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【スプレドシート】IMPORTRANGE...
-
エクセルでファイルを開かずに...
-
Excel 2枚目のブックが開かな...
-
CPU使用率が100%となっ...
-
エクセルで他のファイルのセル...
-
エクセルのファイルが開けない
-
複数のtxtの特定部分を抽出し、...
-
エクセルでハイパーリンクが貼...
-
エクセルでファイル名やシート...
-
エクセルマクロ 数式【VLOOKUP...
-
複数シートを持つExcelファイル...
-
ふたつのファイルを比較し違い...
-
EXCELのファイルが変に・・・
-
エクセル(Excel)で別ファイルと...
-
EXCELで関数が使えなくなった?
-
excel マクロについて
-
エクセルマクロ(vba)のFSO.Open...
-
ExcelVBAについて質問致します ...
-
EXCELを複数起動して別ファイル...
-
PhotoshopでExcelのファイルが...
おすすめ情報