よろしくお願いします。
同じ質問を以前したのですが、日にちが経って締め切りになってしまい
未だに自分では解決できないため、お知恵を借りたく、再度質問させて頂くものとなります。
過去、ご回答頂いた方、ありがとうございました。
再度の質問、ご容赦ください。
アンケートのExcelシートを配布し、【記入表】というシートの4-6行目に記入してもらい1つのシートに集約したいと思っています。(画像をご参照ください)
対象者は500近くで有り、500近くのExcelファイルを1つのフォルダに格納、
別ブックの【回答一覧】というシートに集約したいと思っています。
今までは4-6行目(行全体)を選択し、コピーして【回答一覧】シートに貼り付けをしていました。
同じことの繰り返しなので、マクロで何とか出来ないかと思っています。
下記の画像でコピーしたい【記入表】シートの
表頭の3行目を除いた4-6行目(行全体はどのようにしていすればよいのでしょうか。セルの範囲指定はresizedを使うことは調べました)
を値貼り付けで(関数やリスト入力の値が入っている場合があります)
別ブックの【回答一覧】シート
に集約したいのです。
マクロで出来るのでしょうか。
回答の3行ずつが、【回答一覧】シートに値貼付けされていくイメージです。
この際、Aさんという回答部分にBさんの回答が上書きされないようにしたいです。
【回答一覧】シートに
Aさんの【記入表】4-6行目が【回答一覧】の4-6行目
Bさんの【記入表】4-6行目が【回答一覧】の7-9行目
Cさんの【記入表】4-6行目が【回答一覧】の10-12行目
という感じに集約していきたいのです。
各人から回答を記入したシートを同じフォルダ内に集約しておけば
可能でしょうか。
回答頂いたファイルを同じフォルダに保存していき、回答一覧シートに上書きしていくことを想定しています。
(10月1日にはA、B、Cからの回答ファイルを集約、10月8日にはD、Eから回答があった場合、8日にはA、B、C、D、Eの過去の回答も含め全てマクロで集約することを想定しています。)
お知恵を貸してください。
よろしくお願いします。
No.3ベストアンサー
- 回答日時:
以下のマクロを標準モジュールに登録してください。
Const Folder As String = "D:\goo\data8" 'excelファイル格納フォルダ
は、「500近くのExcelファイルを1つのフォルダに格納」してあるフォルダ名です。あなたの環境にあわせて適切に設定してください。
Option Explicit
Public Sub アンケート集計()
Const Folder As String = "D:\goo\data8" 'excelファイル格納フォルダ
Dim fname As String 'ファイル名
Dim wb2 As Workbook '記入表のブック
Dim WS1 As Worksheet '回答一覧
Dim wS2 As Worksheet '記入表
Dim row1 As Long '回答一覧の処理行
Set WS1 = Worksheets("回答一覧")
'4行以降をクリア
WS1.Rows("4:" & Rows.Count).ClearContents
row1 = 4 '4行から書き込み
fname = Dir(Folder & "\*.xlsx") '指定フォルダ内の*.xlsxを取得
If fname = "" Then
MsgBox (Folder & "内に.xlsxなし")
Exit Sub
End If
Do While fname <> ""
'該当ファイルをオープン
Set wb2 = Workbooks.Open(Folder & "\" & fname)
Set wS2 = wb2.Worksheets("記入表")
'記入表から回答一覧へ3行分まとめて転記
WS1.Rows(row1 & ":" & row1 + 2).Value = wS2.Rows("4:6").Value
wb2.Close SaveChanges:=False
'回答一覧の処理行に3加算
row1 = row1 + 3
'次のexcelファイルを取得
fname = Dir()
Loop
MsgBox ("処理完了")
End Sub
No.4
- 回答日時:
パワークエリが得意の範疇でもありそうですね。
No.2
- 回答日時:
こんにちは
>マクロで出来るのでしょうか。
ご質問文に記載のない、後出しの特殊条件等が無ければ可能でしょう。
>表頭の3行目を除いた4-6行目(行全体はどのようにしていすれば
>よいのでしょうか。セルの範囲指定はresizedを使うことは調べました)
固定範囲なので、対象シートの
.Rows("4:6")
で、4~6行目の行全体の範囲を指定できます。
>を値貼り付けで(関数やリスト入力の値が入っている場合があります)
Copy して、PasteSpecial(xlPasteValues) でも可能ですが、
DestinationRange.Value = SourceRange.Valjue
とすることで、直接「値を転記」できます。
ただし、この場合はそれぞれのRangeのサイズを同じにしておく必要があります。
>という感じに集約していきたいのです。
転記先を変数にしておいて(DestinationRange)、初期値をセットしたら、後はループ内で転記する毎に
Set DetsinationRange = DestinationRange.Offset(3)
とすることで、3行分下にずれますので、次の転記先を示すことが可能です。
以前にも回答しましたが、同様のご質問を何度もなさっているようですが、基本的なループ等は既に作成してもらっているはずですので、そちらを利用なさればよいでしょう。
https://oshiete.goo.ne.jp/qa/13132300.html
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excelの複数ファイルの複数行を別ファイル1つのシートにVBA、マクロで集約する方法 5 2022/09/13 06:30
- Excel(エクセル) Excel、同じフォルダ内のExcelファイルの特定シートのみを1つのファイルに集約したい 8 2022/09/07 15:12
- Excel(エクセル) Excel使用前提 同じフォルダ内にあるファイルの集約等をマクロでできますか 4 2022/09/06 19:03
- Excel(エクセル) 【困っています】VBA 追加処理の記述を教えてください。 1 2022/08/25 22:54
- Visual Basic(VBA) 【前回の続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/16 16:44
- Visual Basic(VBA) 複数ファイルのデータの統合について 12 2022/05/14 12:03
- Visual Basic(VBA) 【前回の続き続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/24 20:49
- Excel(エクセル) 【マクロ】同じフォルダ内にある複数ブックから1つのブック内の1シートにデータを集めたい 6 2022/09/28 18:16
- Visual Basic(VBA) 【困っています2】VBA 追加処理の記述を教えてください。 2 2022/08/26 11:42
- Visual Basic(VBA) Excelのマクロコードについて教えてください。 1 2022/03/27 13:25
このQ&Aを見た人はこんなQ&Aも見ています
-
「どうして捨てられないの?」前妻の物を捨てられない男性の心理って?
前妻の物を捨てられない理由に加え、捨てるための手段はあるのかを専門家に聞いてみた!
-
Excel、同じフォルダ内のExcelファイルの特定シートのみを1つのファイルに集約したい
Excel(エクセル)
-
Excelの複数ファイルの複数行を別ファイル1つのシートにVBA、マクロで集約する方法
Excel(エクセル)
-
ExcelのVBAで同一フォルダ内にあるファイルに同じ処理をしたい
Excel(エクセル)
-
-
4
複数のExcelファイルにある同名シートを1つのシートに一括でまとめるには?
Excel(エクセル)
-
5
複数ファイルから特定シートのコピー
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excelのシートを、まとめて表示...
-
Excel、同じフォルダ内のExcel...
-
エクセルの複数シートの保護を...
-
別シート参照のセルをシート毎...
-
VBAでシートコピー後、シート名...
-
前の(左隣の)シートを連続参...
-
Accessのスプレッドシートエク...
-
EXCEL:同じセルへどんどん足し...
-
エクセルで前のシートを連続参...
-
Excelで同じシートのコピーを一...
-
エクセルVBAでパスの¥マークに...
-
excelでシート毎の最終更新日を...
-
シートの保護のあとセルの列、...
-
別シートの最終行に貼り付けす...
-
エクセルでファイルを開いたと...
-
エクセルでシート名を自動入力...
-
エクセルで毎回1枚目のシートを...
-
エクセル計算式解説
-
シート1に列挙したNGワードを...
-
Accessのマクロを使用してExcel...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルの複数シートの保護を...
-
Excelで同じシートのコピーを一...
-
VBAでシートコピー後、シート名...
-
別シート参照のセルをシート毎...
-
EXCEL:同じセルへどんどん足し...
-
エクセルでファイルを開いたと...
-
エクセルVBAでパスの¥マークに...
-
Excelで金銭出納帳。繰越残高を...
-
前の(左隣の)シートを連続参...
-
EXCELで1ヶ月分の連続した日付...
-
Excel VBについての質問です。
-
複数シートの特定の位置に連番...
-
エクセルで前のシートを連続参...
-
特定のシートの削除を禁止した...
-
エクセルで前シートを参照して...
-
Accessのスプレッドシートエク...
-
Excel、同じフォルダ内のExcel...
-
excelでシート毎の最終更新日を...
-
Excelのシートを、まとめて表示...
-
EXCELで同一フォーマットのシー...
おすすめ情報