
別のフォルダ(DドライブのフォルダAとフォルダB)にそれぞれ同じ名前のファイルが500ずつあります。フォルダAのファイルにはそれぞれの名前のシート1、フォルダBのファイルにはそれぞれの名前のシート2があります。
マクロでフォルダCにシート1とシート2のあるブックを作ることはできませんか?
フォルダA ブック1(シート1)、ブック2(シート1)‥
フォルダB ブック1(シート2)、ブック2(シート2)‥
↓
フォルダC ブック1(シート1.シート2)、ブック2(シート1、シート2)‥
としたいのです。申し訳ありません!助けて下さい!

No.5ベストアンサー
- 回答日時:
以下のマクロを標準モジュールに登録してください。
Const FolderA As String = "d:\goo\excel\goo360A"・・・フォルダA
Const FolderB As String = "d:\goo\excel\goo360B"・・・フォルダB
Const FolderC As String = "d:\goo\excel\goo360C"・・・フォルダC
については、あなたの環境に適切に合わせてください。
---------------------------------------------------
Option Explicit
Const FolderA As String = "d:\goo\excel\goo360A"
Const FolderB As String = "d:\goo\excel\goo360B"
Const FolderC As String = "d:\goo\excel\goo360C"
Const Bs1 As String = "説明"
Const Bs2 As String = "添付"
Const Sh1 As String = "シート1"
Const Sh2 As String = "シート2"
Public Sub シート統合()
Dim flist() As String
Dim fname As String
Dim bname As String
Dim count As Long
Dim i As Long
fname = Dir(FolderA & "\*.xlsx")
'フォルダAの全ファイルを取得
count = 0
Do While fname <> ""
ReDim Preserve flist(count)
flist(count) = fname
count = count + 1
fname = Dir()
Loop
If count = 0 Then
MsgBox (FolderA & "内に該当ブックがありません")
Exit Sub
End If
'取得したファイルを1件ずつ処理
count = 0
For i = 0 To UBound(flist)
bname = flist(i)
If Dir(FolderB & "\" & bname) <> "" Then
Call MakeBook(bname)
count = count + 1
End If
Next
MsgBox (count & "件のブックの作成完了")
End Sub
Private Sub MakeBook(ByVal targetName As String)
Dim bname As String
'FolderAのブックをオープン
Workbooks.Open Filename:=FolderA & "\" & targetName
'新規ブック追加
Workbooks.Add (xlWBATWorksheet)
'新規ブック名を取得
bname = Workbooks(Workbooks.count).Name
'説明をコピー
ThisWorkbook.Worksheets(Bs1).Copy after:=Workbooks(bname).Worksheets(Workbooks(bname).Worksheets.count)
'シート1をコピーしてクローズ
Workbooks(targetName).Worksheets(Sh1).Copy after:=Workbooks(bname).Worksheets(Workbooks(bname).Worksheets.count)
Workbooks(targetName).Close savechanges:=False
'FolderBのブックをオープン
Workbooks.Open Filename:=FolderB & "\" & targetName
'シート2をコピーしてクローズ
Workbooks(targetName).Worksheets(Sh2).Copy after:=Workbooks(bname).Worksheets(Workbooks(bname).Worksheets.count)
Workbooks(targetName).Close savechanges:=False
'添付をコピー
ThisWorkbook.Worksheets(Bs2).Copy after:=Workbooks(bname).Worksheets(Workbooks(bname).Worksheets.count)
'余分なSheet1を削除
Application.DisplayAlerts = False
Workbooks(bname).Sheets("Sheet1").Delete
Application.DisplayAlerts = True
'フォルダーCへそのファイル名で保存
Workbooks(bname).Close savechanges:=True, Filename:=FolderC & "\" & targetName
End Sub
ありがとうございます。
Optionscriptとか、private subなんてどうやって使うのか? お仕事でこのようなことをされているのでしょうか?どうやって勉強していけばいいのでしょうか?
読んでいると意味がわかるのですが、自分ではかけません。
本当にできるようになりたいです。
本当にありがとう子ぞいます!

No.4
- 回答日時:
>シートの並びかえを相談したのは、シート1、2を合体し、「説明」「添付」を合体したら、「説明」「シート1」「シート2」「添付」と並び替えなければならないのかなと思いききました。
それでしたら、フォルダCにブックを作成するときに、最初から
「説明」「シート1」「シート2」「添付」の順に作成すればよいです。
この「説明」と「添付」はブック共通なので、これを予めどこに格納しておくかということになりますが、これらは
マクロのあるブック内に格納しておくという前提で良いでしょうか。
要件を整理すると以下のようになります。
1.フォルダAにある全てのブック(拡張子.xlsx)には、”シート1”が存在する。
2.フォルダBにある全てのブック(拡張子.xlsx)には、”シート2”が存在する。
3.マクロ(これから作成予定のマクロ)をもつブックには、”説明”、”添付”のシートが存在する。
4.フォルダAおよびフォルダB内に共に存在するブックを元に新規ブックを作成し、同じブック名でフォルダCに格納する。
そのブックには、”説明”、”シート1”、”シート2”、”添付”の順にシートを格納する。
5.マクロ実行時、フォルダC内には、一切ブックが存在しないことが前提。
6.マクロ実行時、オープン済みのブックは、そのマクロをもつブックのみであることが前提。
上記の要件で問題なければ、マクロの提供は可能です。

No.3
- 回答日時:
No2です。
補足ありがとうございました。
1.フォルダAの全てのファイルには必ず”シート1”が存在する。
2.フォルダBの全てのファイルには必ず”シート2”が存在する。
3.フォルダAとフォルダBの両方に存在する同じファイル名のもののみが処理対象となる。
上記で、間違いないでしょうか。
追加の件ですが、
>そんなんでつくったフォルダC内のファイル全てのシートの並び順番をかえるマクロはありますか?
フォルダCのブック内のシート1、シート2をシート2、シート1にしたいということでしょうか?
それなら、最初から、シート2、シート1の順で作成してはいかがでしょうか?
>上司の命令で、同様のフォルダC、フォルダDをつくらなければならなそうで、またシートの並びも変更ありそうなのです。
よく、意味が分かりません。
もっと、具体的に説明していただけませんでしょうか?

No.2
- 回答日時:
補足要求です。
1)ブックの拡張子はxlsxで良いですか。
2)シート1の実際のシート名は”シート1”で良いですか。(全て全角文字、"1"も全角)
もし、異なるなら、正確なシート名を提示ください。(全角半角も含めて正確に提示してください)
3)シート2の実際のシート名は”シート2”で良いですか。(全て全角文字、"2"も全角)
もし、異なるなら、正確なシート名を提示ください。(全角半角も含めて正確に提示してください)
4)フォルダA内の全てのブック(拡張子がxlsx)を処理しますが宜しいですか。
5)フォルダBは、フォルダAから取得したファイル名に合致するものを全て処理します。
6)マクロ実行時、フォルダC内には、一切ブックが存在しないという前提で良いですか。
No.1
- 回答日時:
VBAを使用しても、同じ名前のファイルを同時に開くことはできませんので、下記の流れでやってみてはいかがですか?
①新規のブックを開く
②フォルダAのブック1を開いて、①のブックにシート1をコピーし、ブック1を閉じる
③フォルダBのブック1を開いて、①のブックにシート2をコピーし、ブック1を閉じる
④①のブックを名前を付けて保存。
考えかたを具体的に整理してくださりありかとうございます!
実際にマクロをくむとましたらどのようになるのでしょう。
本当に初心者でまったくわからなくて。
どうかどうかよろしくおねかいします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/05/24 08:33
- Visual Basic(VBA) ワイルドカード「*」を使うとうまくいかないマクロの添削をお願いします 3 2022/03/26 09:39
- Excel(エクセル) フォルダ内の複数ブックを同シート名毎に連結させたい 1 2022/04/07 21:24
- Excel(エクセル) 複数のブックをひとつのブック(複数のシートにまとめる)場合にシートとの順番について 5 2022/12/28 20:47
- Visual Basic(VBA) 特定の文字を含むシートだけマクロ処理をしたい 1 2023/05/22 01:43
- Excel(エクセル) フォルダ内のファイル全てに対して、シート名・ファイル名を変更する方法(マクロ VBA) 2 2022/04/02 10:56
- Excel(エクセル) 【マクロ】同じフォルダ内にある複数ブックから1つのブック内の1シートにデータを集めたい 6 2022/09/28 18:16
- Excel(エクセル) VBAで同フォルダ内の別ブックを開かず参照して条件の一致する行の指定セルを抽出するには? 1 2022/07/21 19:29
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/02/21 09:28
- Excel(エクセル) エクセルのマクロについて教えてください。 1 2023/02/20 10:00
このQ&Aを見た人はこんなQ&Aも見ています
-
これまでで一番「情けなかったとき」はいつですか?
これまでの人生で一番「情けない」と感じていたときはいつですか? そこからどう変化していきましたか?
-
歳とったな〜〜と思ったことは?
歳とったな〜〜〜、老いたな〜〜と思った具体的な瞬間はありますか?
-
みんなの【マイ・ベスト積読2024】を教えてください。
積読、ついついしちゃいませんか?そこでみなさんの 「2024年に買ったベスト積読」を聞きたいです。
-
あなたの人生で一番ピンチに陥った瞬間は?
これまでの人生で今振り返ると「あの時、1番ピンチだったなぁ...」という瞬間はありますか?
-
泣きながら食べたご飯の思い出
泣きながら食べたご飯の思い出を教えてください。
-
大量のフォルダからひとつのフォルダにファイルをまとめたい!
その他(ソフトウェア)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・一番好きなみそ汁の具材は?
- ・泣きながら食べたご飯の思い出
- ・「これはヤバかったな」という遅刻エピソード
- ・初めて自分の家と他人の家が違う、と意識した時
- ・いちばん失敗した人決定戦
- ・思い出すきっかけは 音楽?におい?景色?
- ・あなたなりのストレス発散方法を教えてください!
- ・もし10億円当たったら何に使いますか?
- ・何回やってもうまくいかないことは?
- ・今年はじめたいことは?
- ・あなたの人生で一番ピンチに陥った瞬間は?
- ・初めて見た映画を教えてください!
- ・今の日本に期待することはなんですか?
- ・集中するためにやっていること
- ・テレビやラジオに出たことがある人、いますか?
- ・【お題】斜め上を行くスキー場にありがちなこと
- ・人生でいちばんスベッた瞬間
- ・コーピングについて教えてください
- ・あなたの「プチ贅沢」はなんですか?
- ・コンビニでおにぎりを買うときのスタメンはどの具?
- ・おすすめの美術館・博物館、教えてください!
- ・【お題】大変な警告
- ・洋服何着持ってますか?
- ・みんなの【マイ・ベスト積読2024】を教えてください。
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・最強の防寒、あったか術を教えてください!
- ・歳とったな〜〜と思ったことは?
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルを共有するとPCによっ...
-
Excelの警告について
-
エクセルの関数 ENTERを押...
-
VBAでブックを非表示で開いて処...
-
WorkBooksをオープンさせずにシ...
-
Excelファイルをダブルクリック...
-
Excelでブックの共有を掛けると...
-
Excel(2010)のフィルターが保...
-
ブックの保護ができないんです...
-
エクセルにおける,「ブック」...
-
Excelで複数ブックの同一セルに...
-
エクセルファイルを開かずにpdf...
-
VBA:ワークブックを変数でActi...
-
エクセル 複数のブックを一度...
-
同じフォルダへのハイパーリン...
-
フォルダ内の複数ファイルから...
-
ブックのピボットを別ブックに...
-
エクセルでウィンドウの枠固定...
-
【マクロ】【VBA】同じフォルダ...
-
エクセルVBAでブックを相対パス...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelの警告について
-
エクセルを共有するとPCによっ...
-
エクセルの関数 ENTERを押...
-
VBAでブックを非表示で開いて処...
-
Excelファイルをダブルクリック...
-
WorkBooksをオープンさせずにシ...
-
エクセルファイルを開かずにpdf...
-
Excelでブックの共有を掛けると...
-
Excelで複数ブックの同一セルに...
-
同じフォルダへのハイパーリン...
-
エクセルで参照しているデータ...
-
Excel(2010)のフィルターが保...
-
フォルダ内の複数ファイルから...
-
印刷しようとすると強制終了に...
-
ブックのピボットを別ブックに...
-
フォルダ内の複数ファイルから...
-
エクセルで「ディスクがいっぱ...
-
エクセルでウィンドウの枠固定...
-
エクセルファイルをオープンし...
-
エクセルにおける,「ブック」...
おすすめ情報
1)拡張子はxlsxです。
2.3ファイル名は全角文字です
[フォルダAには全てのファイルのかあり、Bのフォルダは一部たりないものもあります、その場合には1に在るシートだけてCにいれたいです)
456はその通りです。簡単にできるのでしようか?
追加 そんなんでつくったフォルダC内のファイル全てのシートの並び順番をかえるマクロはありますか?
上司の命令で、同様のフォルダC、フォルダDをつくらなければならなそうで、またシートの並びも変更ありそうなのです。
見捨てずに聞いて頂けてとてもありがたいです。
最初はフォルダAとBを合体して、シート1と2のあるブックをつくるだけですんだのですが、その合体ブックの最初に「説明」シート、シート1.2の後ろに「添付」シートをつけるように言われてしまいました。この説明と添付はすべてのブックに共通の内容になっています。
シートの並びかえを相談したのは、シート1、2を合体し、「説明」「添付」を合体したら、「説明」「シート1」「シート2」「添付」と並び替えなければならないのかなと思いききました。
説明と添付はすべてのブックに共通なんです。うまいやり方はありますか?
心配です。意味わかっていただけたでしょうか?
作業の内容をわかりやすくまとめていただきありがとうございました。
その通りです!理解いただけて感動です。
今日も1日中ネットで調べながら格闘していましたが、どうにもうまくいかずぐったりでした。
頭の中ではいろいろ考えてみているのですが、ネットで例を調べながら進めていますが、エラーの言葉の意味からわからないので、時間ばかりすぎてしまいます。
助けていただけると本当にありがたいです。