![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?8acaa2e)
Sub CopyDataFromMultipleFolders()
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Dim folderPaths(1 To 2) As String
Dim fileName As String
Dim filePath As String
Dim wbSource As Workbook
Dim wsSource As Worksheet
Dim targetSheet As Worksheet
Dim targetRow As Integer
Dim folderIndex As Integer
' 事前に指定された2つのフォルダのパス
folderPaths(1) = "C:\Path\To\Your\Folder1"
folderPaths(2) = "C:\Path\To\Your\Folder2"
' 対象セルの初期化
targetRow = 1
' フォルダごとに処理を繰り返す
For folderIndex = 1 To 2
' 選択したフォルダ内の全てのエクセルを一つずつ開く
fileName = Dir(folderPaths(folderIndex) & "\*.xls*")
If fileName = "" Then
MsgBox "指定されたフォルダにExcelファイルが見つかりませんでした。", vbExclamation
Exit Sub
End If
' ③ 開いたシート内のC2、C3、I3(またはJ3)セルをコピーして ④ 貼り付け
Do While fileName <> ""
' ファイルのフルパスを取得
filePath = folderPaths(folderIndex) & "\" & fileName
' Excelファイルを開かずにデータをコピー
Set wbSource = Workbooks.Open(filePath, UpdateLinks:=0, ReadOnly:=True)
' 対象となるシートを指定
Set targetSheet = ThisWorkbook.Sheets(folderIndex)
' ターゲットシートにヘッダーを書き込む
If targetRow = 1 Then
targetSheet.Range("A1").Value = "C2"
targetSheet.Range("B1").Value = "C3"
targetSheet.Range("C1").Value = IIf(folderIndex = 1, "I3", "J3")
End If
' 対象セルの値をコピー
For Each wsSource In wbSource.Sheets
targetSheet.Range("A" & targetRow).Value = wsSource.Range("C2").Value
targetSheet.Range("B" & targetRow).Value = wsSource.Range("C3").Value
targetSheet.Range("C" & targetRow).Value = IIf(folderIndex = 1, wsSource.Range("I3").Value, wsSource.Range("J3").Value)
' 次の行に移動
targetRow = targetRow + 1
Next wsSource
' ファイルを閉じる
wbSource.Close SaveChanges:=False
' 次のファイルを取得
fileName = Dir
Loop
Next folderIndex
' 画面更新および警告の表示を再開
Application.ScreenUpdating = True
Application.DisplayAlerts = True
MsgBox "データのコピーが完了しました。", vbInformation
End Sub
上記のVBAでシート1、2それぞれ貼付けの際にa1セルから順に貼り付けたいのですがどこを修正すればいいでしょうか?
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
' ターゲットシートにヘッダーを書き込む
If targetRow = 1 Then
targetSheet.Range("A1").Value = "C2"
targetSheet.Range("B1").Value = "C3"
targetSheet.Range("C1").Value = IIf(folderIndex = 1, "I3", "J3")
End If
ここが、1行目に対しての処理のようなので、1行目のヘッダーが不要ということであれば、ここの5行の先頭に「'」を付けて実行させないようにするといいかも。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 貼り付けた値が消えていく 以下はソースファイルの2番目のシートのB6から最終行を取得 ターゲットファ 2 2023/07/27 12:23
- Visual Basic(VBA) VBAのユーザーフォームのテキストボックスに入力制限をしたい 6 2022/11/15 08:28
- Visual Basic(VBA) ExcelVBAに関する質問 3 2023/02/17 10:47
- Excel(エクセル) VBAについて 3 2022/06/19 18:19
- Visual Basic(VBA) VBAが止まります。 2 2022/09/02 14:02
- Excel(エクセル) Excel VBAどこが間違ってますか? 4 2023/07/17 10:04
- Excel(エクセル) Excel データの並び替え 1 2024/01/28 18:11
- Visual Basic(VBA) 【前回の続き続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/24 20:49
- Visual Basic(VBA) 【ご教示ください】VBAの記述方法がわかりません。 2 2022/08/12 21:28
- Visual Basic(VBA) VBAに関して 2 2023/11/09 20:57
このQ&Aを見た人はこんなQ&Aも見ています
-
性格の違いは生まれた順番で決まる?長男長女・中間子・末っ子・一人っ子の性格の傾向
同じ環境で生まれ育っても、生まれ順で性格は違うものなのだろうか。家庭教育研究家の田宮由美さんに教えてもらった。
-
VBAコードが作動しません。修正したいのですが何処に原因かあるか教えて下さい。
Visual Basic(VBA)
-
Excel VBAでの数値の計算についておしえてください
Visual Basic(VBA)
-
引数に数値、文字列の混在
Visual Basic(VBA)
-
-
4
excelのVBAについて、以下のコードに追加をお願いいたします。
Visual Basic(VBA)
-
5
以下のコードを実行しても、オブジェクト変数または、withブロック変数が設定されていませんとエラーが
Visual Basic(VBA)
-
6
Excelセルに入力された文字の色を変える方法を教えてください
Visual Basic(VBA)
-
7
VBAのことで質問です
Visual Basic(VBA)
-
8
VBAの質問です、複数のテキストボックスに同じコメントを
Visual Basic(VBA)
-
9
郵便番号検索APIにてget ElementByTagNameでうまくを取得できない
Visual Basic(VBA)
-
10
Excel VBA マクロ シート名を変えずにA列にあるセル名の名前でファイルの分割をしたいです
Visual Basic(VBA)
-
11
エクセルファイルのデータ転記について
Visual Basic(VBA)
-
12
特定文字を入ってるCSVの特定の列を特定のexcelシートに取り込みたいです
Visual Basic(VBA)
-
13
ご教授お願いします。#NUM!が解消されません。
Visual Basic(VBA)
-
14
コードを直していただきたいです。 以下のコードはネットで拾ったものをほんの少しいじった物なのですが、
Visual Basic(VBA)
-
15
ExcelVBAのFindFirstエラーについて
Visual Basic(VBA)
-
16
エクセルのマクロ
Excel(エクセル)
-
17
VBA コード
Visual Basic(VBA)
-
18
VBA実行後に元のセルに戻りたい
Visual Basic(VBA)
-
19
ExcelのVBAのことで質問です。 以下のコードを入れ、ボタンを押せば作動させると写真のように画面
Visual Basic(VBA)
-
20
for 文の 繰り返し処理に使えるのかどうかについて
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで複数のコメントのサ...
-
バッチファイルのコピーで
-
バッチファイル XCOPYで上書き...
-
エクセル2010、図が大きすぎま...
-
エクセルのハイパーリンクがコ...
-
バッチファイル 別ファイルにリ...
-
同じファイル名 上書きしないフ...
-
ファイルサーバ上のファイルが...
-
VBSでExcelシートのコピー
-
bat 同名ファイルコピー時にリ...
-
Vba初心者です。下記のコード助...
-
frxファイルの役目
-
xcopyでのバッチコピー方法でコ...
-
Excel VBAで値コピーが使用でき...
-
FSO.CopyFileでのエラー無視方法
-
[エクセル]コピーするとオブジ...
-
任意のファイルを別のファイル...
-
「ファイルが見つかりません D...
-
vbsでExcelのシートをコピーす...
-
ExcelのVBA使用ファイルが保存...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで複数のコメントのサ...
-
エクセルのハイパーリンクがコ...
-
frxファイルの役目
-
バッチファイル XCOPYで上書き...
-
Vba初心者です。下記のコード助...
-
Excelのマクロについて教えてく...
-
エクセル2010、図が大きすぎま...
-
バッチファイル 別ファイルにリ...
-
[エクセル]コピーするとオブジ...
-
パワポでスライドをコピーでき...
-
エクセルVBAで開いているファイ...
-
ファイルサーバ上のファイルが...
-
xcopyでのバッチコピー方法でコ...
-
Excelのマクロについて教えてく...
-
FTPとファイルコピーの違いにつ...
-
バッチファイルのコピーで
-
Excelのマクロについて教えてく...
-
bat 同名ファイルコピー時にリ...
-
アクセス クエリを別のファイ...
-
同じファイル名 上書きしないフ...
おすすめ情報