よろしくお願いします。
マクロ初心者で、いろいろ調べながら作業をしたのですが、うまくいきませんでした。
デスクトップ上に1つのフォルダがあり、その中に、コピー先ブックと20くらいのコピー元ブックがあります。コピー元ブックをコピー先ブックに集約したいです。
コピー元ブックのシート2のB列~D列の2行目から値が入力されている行までをコピーして、コピー先ブックのシート1のB列~D列の2行目以降に貼り付ける。
この作業を20くらいある全てのブックに対して実行して、コピー先ブックの下の行、下の行へと貼り付ける。
ただし、コピー元ブックのA2セルが空欄の場合、B~Dも空欄なので、作業する必要はありません。
初めての質問なのですが、これでわかりますか。よろしくお願いします。
No.3ベストアンサー
- 回答日時:
以下のマクロを標準モジュールに登録してください。
Option Explicit
Dim row1 As Long
Dim sh1 As Worksheet
Public Sub データ集約()
Dim siten_arr As Variant
Dim siten As Variant
Dim bookname As String
Set sh1 = Worksheets("Sheet1")
row1 = 2
bookname = Dir(ThisWorkbook.Path & "\" & "*.xlsx")
Do While bookname <> ""
Call get_book(bookname)
bookname = Dir()
Loop
MsgBox ("完了")
End Sub
'1つのファイルを処理する
Private Sub get_book(ByVal bookname As String)
Dim wb As Workbook
Dim maxrow As Long
Dim row2 As Long
Dim names As Variant
Dim sh2 As Worksheet
Dim base As String
Set wb = Workbooks.Open(ThisWorkbook.Path & "\" & bookname)
Set sh2 = wb.Worksheets("Sheet2")
'A2が空白ならコピーしない
If sh2.Range("A2").Value = "" Then
wb.Close
Exit Sub
End If
maxrow = sh2.Cells(Rows.Count, "B").End(xlUp).Row
For row2 = 2 To maxrow
sh1.Range("B" & row1 & ":D" & row1).Value = sh2.Range("B" & row2 & ":D" & row2).Value
row1 = row1 + 1
Next
wb.Close
End Sub
助かりました。
正常に動きました。
難しい内容ですが、これをもとに勉強させていただきます。
迅速なご回答、どうもありがとうございました。
No.2
- 回答日時:
補足要求です。
1.マクロはコピー先ブックに格納する前提で良いですか。
2.コピー元ブックの拡張子は.xlsxでしょうか。それとも.xlsでしょうか。
3.コピー元ブックのシート名は"シート2"で間違いないですか。(Sheet2ではない)
4.コピー先ブックのシート名は"シート1"で間違いないですか。(Sheet1ではない)
No.1
- 回答日時:
こんばんは。
直接の回答ではなくすみませんが、質問者さんの作ったマクロを載せて、
どこが、どの様にうまくいかないかを書いて貰えると、回答が付くかと
思います。
私個人のポリシーになりますが、私が可能な限りアドバイスはしますが、
1からのマクロの作成はしていませんので、悪しからず。。。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/05/24 08:33
- Visual Basic(VBA) マクロで最終行を取得したい 4 2023/05/28 12:14
- Excel(エクセル) 【困っています】VBA 追加処理の記述を教えてください。 1 2022/08/25 22:54
- Visual Basic(VBA) 【ご教示ください】VBAの記述方法がわかりません。 2 2022/08/12 21:28
- Excel(エクセル) エクセルのマクロについて教えてください。 3 2023/02/07 14:47
- Visual Basic(VBA) 【困っています2】VBA 追加処理の記述を教えてください。 2 2022/08/26 11:42
- Visual Basic(VBA) 【前回の続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/16 16:44
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/07/04 17:58
- Excel(エクセル) マクロVBA別Excelブックにデータ転記 2 2022/07/10 23:35
- Excel(エクセル) 【マクロ】同じフォルダ内にある複数ブックから1つのブック内の1シートにデータを集めたい 6 2022/09/28 18:16
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excel 関数を使ってデータと一...
-
エクセルの選択範囲以外を削除...
-
EXCELのVBAでシートコピーをし...
-
【VBA】コピー&複数個所のペー...
-
EXCELで別のブックから式をコピ...
-
エクセルVBA 1行飛ばしで転記す...
-
【Excel】数式をそのまま他のシ...
-
Excel 数式の保護をしたセルを...
-
Excel Selectは使わない? VBA
-
【エクセル】プルダウン設定の...
-
エクセルのシートコピーした際...
-
VBA シートをコピー後、ボタン...
-
ExcelVBAで、ユーザーフォーム...
-
【Excel VBA】シートコピー時、...
-
Excel シートに別のExcelシート...
-
エクセルのワークシートをUSBメ...
-
EXCEL VBA シートをコピーする...
-
シートが保護されていないのに...
-
EXCEL2007でシートをコピーする...
-
標準モジュール、フォームを別...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルの選択範囲以外を削除...
-
Excel 関数を使ってデータと一...
-
EXCELのVBAでシートコピーをし...
-
【Excel】数式をそのまま他のシ...
-
エクセルの1シートの内容を複...
-
【VBA】コピー&複数個所のペー...
-
EXCELで別のブックから式をコピ...
-
【エクセル】プルダウン設定の...
-
Excel シートのコピーの際、ペ...
-
エクセルVBA 1行飛ばしで転記す...
-
Excel 数式の保護をしたセルを...
-
Excelの行をコピーして貼り付け...
-
エクセルのワークシートをUSBメ...
-
シートが保護されていないのに...
-
エクセルシートを別のエクセル...
-
VBA シートをコピー後、ボタン...
-
【Excel VBA】シートコピー時、...
-
Excel シートに別のExcelシート...
-
【スプレッドシートで】xlsx形...
-
PDFファイルをコピーしてエクセ...
おすすめ情報
1.マクロは、コピー先ブックに格納します。
2.xlsxです。
3.Sheet2です。
4.Sheet1です。
よろしくお願いします。