お世話になります。
Excel2016にて作業をしておりますが、上手くいかないのでお知恵をお貸しいただきたく質問いたします。
【概要】
あるフォルダ内にある複数のExcelファイルから、特定のセル及び列を1つのExcelファイルに集約します。
【詳細】
1.あるフォルダ内に複数のExcelファイルがあります。
いずれも「〜.xlsx」の形式で、ファイル数は日によって異なります。
2.これらのExcelファイルの、Sheet1のA1セルとA2セル、Sheet2のA列、C列を抽出して、1つのExcelファイルに貼り付けます。
3.列の長さはファイルによって異なります。
4.貼付→次の列へ移動、というサイクルをフォルダ内のExcelファイルの数だけ繰り返します。
5.集約したExcelファイルのイメージは以下の通りです。
A列 B列 C列 D列 E列……
1行目 A1 A2 A1 A2
2行目 A列 C列 A列 C列
3行目 A列 C列 A列 C列
4行目 A列 C列 A列 C列
5行目 A列 C列 A列 C列
↑ ↑
(1.xlsx)(2.xlsx)
「列を集約」と「セルを集約」を同時に解決できずにおります。
ご助言をいただけますと大変ありがたいです。よろしくお願いいたします。
No.1ベストアンサー
- 回答日時:
こんにちは!
各ブックのSheet2のA・C列は1行目からでよいのでしょうかね?
尚、Sheet2のC列最終行とA列の最終行は同じ行数だとしています。
一例です。
コード記載ブックのSheet1に表示するとします。
標準モジュールにしてください。
Sub Sample1()
Dim myPath As String, fN As String
Dim wB As Workbook, wS1 As Worksheet, wS2 As Worksheet
Dim cnt As Long, lastRow As Long, myCol As Long
myPath = "保存場所のパス" & "\"
fN = Dir(myPath & "*xlsx")
Do Until fN = ""
Workbooks.Open myPath & fN
Set wB = ActiveWorkbook
Set wS1 = wB.Worksheets("Sheet1")
Set wS2 = wB.Worksheets("Sheet2")
cnt = cnt + 1
myCol = cnt * 2 - 1
With ThisWorkbook.Worksheets("Sheet1")
.Cells(1, myCol) = wS1.Range("A1")
.Cells(1, myCol + 1) = wS1.Range("A2")
lastRow = wS2.Cells(Rows.Count, "A").End(xlUp).Row
Range(wS2.Cells(1, "A"), wS2.Cells(lastRow, "A")).Copy
.Cells(2, myCol).PasteSpecial Paste:=xlPasteValues
Range(wS2.Cells(1, "C"), wS2.Cells(lastRow, "C")).Copy
.Cells(2, myCol + 1).PasteSpecial Paste:=xlPasteValues
End With
wB.Close
fN = Dir()
Loop
MsgBox "完了"
End Sub
こんな感じではどうでしょうか?
※ コード内の「保存場所のパス」は実際のパスにしてください。m(_ _)m
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) pythonでクラスで複数のメソッドを利用する方法 2 2022/04/15 04:17
- Excel(エクセル) 【困っています】VBA 追加処理の記述を教えてください。 1 2022/08/25 22:54
- Visual Basic(VBA) 複数csvを横に追加していくマクロについて 2 2023/04/25 09:19
- Excel(エクセル) excel 別のフォルダから列コピーする方法 8 2022/12/17 16:24
- Excel(エクセル) csvファイルをExcel形式で読み込むには 2 2023/07/03 13:09
- Excel(エクセル) マクロか関数で処理したいのですが、教えて頂けませんか。 8 2022/10/31 15:18
- Excel(エクセル) エクセルのマクロについて教えてください。 3 2023/02/07 14:47
- Visual Basic(VBA) Excelのマクロについて教えてください。 1 2023/03/12 12:16
- Visual Basic(VBA) サブフォルダ(データ)にある複数の.xlsxファイルのSheet3のA2セルの値で01から左側をB2 2 2022/08/14 15:46
- Visual Basic(VBA) excelにて、特定の列に数字入力してあれば、入力してある行コピーして 別ファイルに張り付ける 2 2022/08/11 05:33
このQ&Aを見た人はこんなQ&Aも見ています
-
賃貸で可能な古民家風レトロな部屋作りのコツ!改めて知る畳の高い機能性と魅力も紹介
畳の部屋を雰囲気のよい部屋に仕上げたい!賃貸住宅でもできる古民家風のレトロな部屋作りのコツを伺った。
-
フォルダ内の複数ファイルから、特定セルだけを抽出し、並び替えて集約したい
Excel(エクセル)
-
フォルダ内の全てのファイルに貼り付けを行うマクロを作りたい
Visual Basic(VBA)
-
【VBA】フォルダ内の複数Excelのセルをコピー
Visual Basic(VBA)
-
-
4
ブックを開かずに、フォルダ内にある複数ブックの、特定セルの値を抽出した
Excel(エクセル)
-
5
VBAで保存しないで閉じると空のBookが残る
Excel(エクセル)
-
6
【VBA】2つのシートの値を比較して条件一致したら、同じ行の隣の値を別ブックへ転記したいです。 VB
Visual Basic(VBA)
-
7
ExcelのVBAで同一フォルダ内にあるファイルに同じ処理をしたい
Excel(エクセル)
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで二つの数字の小さい...
-
エクセルで最初のスペースまで...
-
PowerPointで表の1つの列だけ...
-
エクセル 文字数 多い順 並...
-
2つのエクセルのデータを同じよ...
-
エクセルの表から正の数、負の...
-
VBAで文字列を数値に変換したい
-
エクセル 同じ値を探して隣の...
-
エクセルで文字が混じった数字...
-
Excelで半角の文字を含むセルを...
-
Excel、市から登録している住所...
-
「B列が日曜の場合」C列に/...
-
オートフィルターをかけ、#N/A...
-
Excelの行、列の左方向シフト、...
-
エクセルの表示画面(シート)...
-
【VBA】特定列に文字が入ってい...
-
EXCELで 一桁の数値を二桁に
-
VBAでセル入力の数式に変数を用...
-
エクセルの項目軸を左寄せにしたい
-
エクセル(勝手に太字になる)
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで二つの数字の小さい...
-
PowerPointで表の1つの列だけ...
-
2つのエクセルのデータを同じよ...
-
エクセルで最初のスペースまで...
-
エクセルVBA、別ブックへ転記す...
-
エクセル 文字数 多い順 並...
-
エクセル(勝手に太字になる)
-
VBAで文字列を数値に変換したい
-
エクセルで文字が混じった数字...
-
エクセルの表から正の数、負の...
-
「B列が日曜の場合」C列に/...
-
Excelで半角の文字を含むセルを...
-
エクセルの並び変えで、空白セ...
-
Excel、市から登録している住所...
-
エクセル 同じ値を探して隣の...
-
EXCELで 一桁の数値を二桁に
-
エクセル初心者です 関数の入れ...
-
A列がない・・・A列が非表示に...
-
オートフィルターをかけ、#N/A...
-
エクセルで、列の空欄に隣の列...
おすすめ情報